Функциональные языки: перспектива
От: bleed  
Дата: 11.02.04 20:43
Оценка: 2 (1)
Думаю, здесь найдутся знающие люди, потому спрошу.
Есть у меня идея залезть в функциональное программирование поглубже. Потому встает вопрос, какой язык выбрать для изучения (благо, выбор есть).
Я в свое время довольно неплохо изучил Лисп (в его Common варианте). Но это было во время учебы, и цели были чисто академические. Сейчас интерес несколько другой: применение в реальных проектах на практике.
Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?
Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?


16.10.04 22:20: Перенесено модератором из 'Философия программирования' — AndrewVK
Re: Функциональные языки: перспектива
От: Аноним  
Дата: 11.02.04 22:39
Оценка:
Здравствуйте, bleed, Вы писали:

B>Но это было во время учебы, и цели были чисто академические. Сейчас интерес несколько другой: применение в реальных проектах на практике.

B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?

Все что связано с функциональными языками связано как раз с академическими интересами.
активно развивающихся функциональных языков нет.
Современное индустриальное программирование практически никак не использует функциональные языки.
Что конечно же не означает, что этим не стоит заниматься вообще,
если к этому есть интерес.
Re: Функциональные языки: перспектива
От: Аноним  
Дата: 12.02.04 03:29
Оценка:
Здравствуйте, bleed, Вы писали:

B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?


Haskell,
F# (для .NET)

B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?


MS Research считает, что есть (см. F#).
Re: Функциональные языки: перспектива
От: alexkro  
Дата: 12.02.04 10:23
Оценка: +2
Здравствуйте, bleed, Вы писали:

B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?


OCaml. Все хочу его оседлать, да руки пока не доходят.

B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?


Если посмотреть на то, куда развивается C++, то будущее скорее всего за языком, который наиболее гармонично сочитает функциональный и общепринятые стили программирования.
Re: Функциональные языки: перспектива
От: Аноним  
Дата: 12.02.04 11:44
Оценка:
Здравствуйте, bleed, Вы писали:

Лисп знаю слабо, пролог гораздо лучше. Более всего в прологе меня напрягало — написание интерфейса программы, его на мой взгляд привычнее делать по старинке, а для логических задач приминять средства пролога. По этой причине, в свое время, сваял интерфейсную библиотеку для Турбопролога (Логику пишеш на прологе, а интерфейс на Цэ, красотища. Хотя с линковкой приходилось возица чуть подольше ).
Идеал скорее всего где-то посередине.
Re: Функциональные языки: перспектива
От: Аноним  
Дата: 12.02.04 13:29
Оценка: :)
Здравствуйте, bleed, Вы писали:

B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?


Из специализированных — SQL
Re[2]: Функциональные языки: перспектива
От: bkat  
Дата: 12.02.04 13:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, bleed, Вы писали:


B>>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?


А>Из специализированных — SQL


SQL — это "логическое, декларативное" программирование.
Функциональные языки имеют другую природу (лямбда исчисление)
Re[3]: Функциональные языки: перспектива
От: Кодт Россия  
Дата: 12.02.04 15:39
Оценка:
Здравствуйте, bkat, Вы писали:

B>Функциональные языки имеют другую природу (лямбда исчисление)


"Имея маркер, можем размалевать всё что угодно на свете, кроме самого маркера. Имея два маркера — можем размалевать ваще всё!"

Давным-давно я тренировался — делал лисп на паскале. В ограниченном виде это даже работало
Значит, на С++ это ещё проще.
А на лиспе можно сделать и пролог, и что хошь.
Перекуём баги на фичи!
Re[4]: Функциональные языки: перспектива
От: LaptevVV Россия  
Дата: 12.02.04 16:04
Оценка: 15 (1)
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, bkat, Вы писали:


B>>Функциональные языки имеют другую природу (лямбда исчисление)


К>"Имея маркер, можем размалевать всё что угодно на свете, кроме самого маркера. Имея два маркера — можем размалевать ваще всё!"


К>Давным-давно я тренировался — делал лисп на паскале. В ограниченном виде это даже работало

К>Значит, на С++ это ещё проще.
К>А на лиспе можно сделать и пролог, и что хошь.

У Адаменко Анатолия (он из издательства Питер) вышла книжку в издательстве БХВ "Логическое программирование и Visual Prolog". Система — современная, визуальная. Самое интересное, что к книжке прилагается ЛИЦЕНЗИОННЫЙ Visual Prolog от автора — фирмы PDS Prolog.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Функциональные языки: перспектива
От: bkat  
Дата: 12.02.04 18:24
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, bkat, Вы писали:


B>>Функциональные языки имеют другую природу (лямбда исчисление)


К>"Имея маркер, можем размалевать всё что угодно на свете, кроме самого маркера. Имея два маркера — можем размалевать ваще всё!"


К>Давным-давно я тренировался — делал лисп на паскале. В ограниченном виде это даже работало

К>Значит, на С++ это ещё проще.
К>А на лиспе можно сделать и пролог, и что хошь.

Проще всего Лисп на Лиспе
Re[5]: Функциональные языки: перспектива
От: Кодт Россия  
Дата: 12.02.04 20:27
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>У Адаменко Анатолия (он из издательства Питер) вышла книжку в издательстве БХВ "Логическое программирование и Visual Prolog". Система — современная, визуальная. Самое интересное, что к книжке прилагается ЛИЦЕНЗИОННЫЙ Visual Prolog от автора — фирмы PDS Prolog.


Visual Prolog мне сходу не очень понравился — какой-то загромождённый: чтобы простую программу написать, нужно кучу файлов родить — проект почище С++ного.
Ну это потому, что я не умею их готовить, разумеется...
... << RSDN@Home 1.1.2 stable >>
Перекуём баги на фичи!
Re[5]: Функциональные языки: перспектива
От: Кодт Россия  
Дата: 12.02.04 20:27
Оценка:
Здравствуйте, bkat, Вы писали:

К>>"Имея маркер, можем размалевать всё что угодно на свете, кроме самого маркера. Имея два маркера — можем размалевать ваще всё!"


К>>Давным-давно я тренировался — делал лисп на паскале. В ограниченном виде это даже работало

К>>Значит, на С++ это ещё проще.
К>>А на лиспе можно сделать и пролог, и что хошь.

B>Проще всего Лисп на Лиспе


Это к вопросу о двух маркерах? Но, в общем, были же лисп-машины, у них внутрях как раз лисп на лиспе.
А самое прикольное, что я встречал — это лисп на форте, а потом пролог на этом лиспе. По-моему, в книге по фиг-форту (издательства Радио-и-Связь).
... << RSDN@Home 1.1.2 stable >>
Перекуём баги на фичи!
Re: Функциональные языки: перспектива
От: bleed  
Дата: 12.02.04 22:19
Оценка:
То есть, насколько я понял, большинство считает функциональное программирование забавной игрушкой и не более того. Никто не знает реальных коммерческих проектов, которые бы велись на функциональных языках?
Я почитал то, что есть у Microsoft по F#, и там, в общем-то, написано, что мы, мол, сделали этот язык чуть ли не просто в демонстрационных целях, чтобы продемонстрировать, что любой язык можно реализовать под .NET и связать с кодом на C#. И все. Грустно
Re: Функциональные языки: перспектива
От: Gaperton http://gaperton.livejournal.com
Дата: 17.02.04 16:57
Оценка:
Здравствуйте, bleed, Вы писали:

B>Думаю, здесь найдутся знающие люди, потому спрошу.

B>Есть у меня идея залезть в функциональное программирование поглубже. Потому встает вопрос, какой язык выбрать для изучения (благо, выбор есть).
B>Я в свое время довольно неплохо изучил Лисп (в его Common варианте). Но это было во время учебы, и цели были чисто академические. Сейчас интерес несколько другой: применение в реальных проектах на практике.

B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?

B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?

Да пожалуйста. Erlang

In a nutshell, what is Erlang?
Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson. The most popular implementation of Erlang is available as open source from the open source erlang site.


Функциональный язык, разработанный (и применяемый) в Ericsson для написания собственных телекоммуникационных систем. Специалисты Ericsson утверждают, что с ним разработка обходится значительно дешевле.

А вообще, функциональное программирование обладает рядом преимуществ перед "обычным" о чем можно прочесть в соответствующей литературе. С течением времени проблемы с производительностью постепенно отходят на второй план, сложность систем растет, и становится гораздо важнее удешевить разработку качественного ПО. Так что следует ожидать роста интереса к функциональным языкам, и более широкого их использования в коммерческом софте, к чему и пример про erlang. Это были соображения.
Re[2]: Функциональные языки: перспектива
От: Gaperton http://gaperton.livejournal.com
Дата: 17.02.04 19:08
Оценка:
Здравствуйте, bleed, Вы писали:

B> То есть, насколько я понял, большинство считает функциональное программирование забавной игрушкой и не более того.

Ну и что вам с того?
B> Никто не знает реальных коммерческих проектов, которые бы велись на функциональных языках?
По логике, стоило-бы поставить точку вместо вопросительного знака. Меж тем...

...during the 1980s there was a project at the Ericsson Computer Science Laboratory which aimed to find out what aspects of computer languages made it easier to program telecommunications systems. Erlang emerged in the second half of the 80s was the result of taking those features which made writing such systems simpler and avoiding those which made them more complex or error prone.


Теперь закономерен вопрос:

Who uses Erlang for product development?


На что в ФАКе по erlang-у мы находим ответ:

The largest user of Erlang is (surprise!) Ericsson. Ericsson use it to write software used in telecommunications systems. Many (dozens) projects have used it, a particularly large one is the extremely scaleable AXD301 ATM switch. AXD301 has several hundred people working on it and the code volume has reached about 850 kloc of Erlang (and 1 Mloc of C/C++).

Some of the other companies using Erlang are


Bluetail/Alteon/Nortel (distributed, fault tolerant email system, SSL accelerator)

Cellpoint (Location-based Mobile Services)

Corelatus (SS7 signalling black box).

Eddie robust webserver

Finnish Meteorological Institute (Data acquisition and real-time monitoring)

Mobilearts (GSM and UMTS services)

Motivity Telecom (SS7/ISDN Gateways)

Schlund + Partner (Messaging and Interactive Voice Response services)

T-Mobile (previously one2one) (advanced call control services)

Telia (a telecomms operator)

Vail Systems (Interactive Voice Response systems)


B>Я почитал то, что есть у Microsoft по F#, и там, в общем-то, написано, что мы, мол, сделали этот язык чуть ли не просто в демонстрационных целях, чтобы продемонстрировать, что любой язык можно реализовать под .NET и связать с кодом на C#. И все. Грустно


А вы "не читайте перед обедом советских газет" — "так других-же нет!" — "вот никаких и не читайте"
Re: Функциональные языки: перспектива
От: dshe  
Дата: 18.02.04 12:04
Оценка: 5 (2) +1
Здравствуйте, bleed, Вы писали:

B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?


На мой взгляд, у функциональных языков есть явное преимущество перед императивными при распараллеливании программ. Например, при вычислении выражения (в функциональном языке)
g(f1(), f2(), f3())

из-за отсутствия побочных эффектов, функции f1, f2, f3 могут вычисляться параллельно (в отдельных потоках и на отдельных процессорах). В аппликативных языках, в общем случае, это сделать нельзя. И поскольку, анализ зависимостей данных в императивных языках, -- задача довольно сложная, "имеративным" программистам приходится явно создавать thread'ы для обеспечения параллельной работы. И потом их еще и сихронизировать семаформами всякими.

В функциональных же языках проблем с синхронизацией thread'ов может и не быть в принципе! Так что, перспективы, думаю, есть.

PS
Кстати, те, у кого на машинах стоят процессоры с Hyper-Threading'ом, наверняка обратили внимание, что на большинстве задач, которые достаточно пригружают процессор, загруженность процессора все равно не поднимается выше 50%. Полагаю, что это связано принципиальной "однопоточностью" задачи. Даже в том, случае, когда приложение многопоточное, в нем все равно существует только один "рабочий поток", который и содержит в себе массивные вычисления.

Функциональные языки позволили бы (в данном случае) более эффективно использовать процессорное время.
--
Дмитро
Re[2]: Функциональные языки: перспектива
От: LaptevVV Россия  
Дата: 18.02.04 12:11
Оценка:
Здравствуйте, bleed, Вы писали:

B>То есть, насколько я понял, большинство считает функциональное программирование забавной игрушкой и не более того. Никто не знает реальных коммерческих проектов, которые бы велись на функциональных языках?

Еще в 80-х годах, когда мы из Ташкента работали с ленинградской Авророй, для реализации системы сделали следующее:
1. В PL/I встроили лиспоскую машину, написав отдельную библиотеку.
2. Разработали специальный новый язык программирования типа Planner и реализовали интерпретатор на конгломерате PL/I+Lisp.
3. на этом языке запрограммировали договор.
А вы говорите...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Функциональные языки: перспектива
От: Кодт Россия  
Дата: 18.02.04 12:37
Оценка:
Здравствуйте, bleed, Вы писали:

B>То есть, насколько я понял, большинство считает функциональное программирование забавной игрушкой и не более того. Никто не знает реальных коммерческих проектов, которые бы велись на функциональных языках?

B>Я почитал то, что есть у Microsoft по F#, и там, в общем-то, написано, что мы, мол, сделали этот язык чуть ли не просто в демонстрационных целях, чтобы продемонстрировать, что любой язык можно реализовать под .NET и связать с кодом на C#. И все. Грустно

Ну не грустно, не грустно. AutoCAD юзает в качестве скриптового языка диалект AutoLISP
Тоже небось, неспроста.

Плюсы лиспа
* очень простой рантайм
* очень простой парсер (писаный на нём же самом, кстати)
* не такой мозголом как форт

Среда математического анализа Derive (это где-то 1990 год) сделана на muLisp. (исходников не видел, но содержимое экзешника говорило само за себя: ядро мюлиспа + дамп памяти лиспмашины).
Перекуём баги на фичи!
Re[2]: Функциональные языки: перспектива
От: bkat  
Дата: 18.02.04 12:44
Оценка:
Все так, но массово функциональные языки использоваться в ближайшее время не будут.
Обычное программирование и функциональное (впрочем и логическое тоже)
уж слишком отличаются. Мыслить, когда пишешь на Лиспе, надо просто иначе.
Это примерно так же как и с Прологом.
Если знаешь основы обычного программирования,
то в Прологе постоянно не хватает обычных переменных,
циклов и прочих обычных для процедургого программирования вещей.
С функциональными языками будет примерно то же самое.
Re: Функциональные языки: перспектива
От: amid  
Дата: 18.02.04 13:10
Оценка:
Здравствуйте, bleed, Вы писали:

B>Думаю, здесь найдутся знающие люди, потому спрошу.

B>Есть у меня идея залезть в функциональное программирование поглубже. Потому встает вопрос, какой язык выбрать для изучения (благо, выбор есть).
B>Я в свое время довольно неплохо изучил Лисп (в его Common варианте). Но это было во время учебы, и цели были чисто академические. Сейчас интерес несколько другой: применение в реальных проектах на практике.
B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?
B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?

Я сам большой поклонник функционального программирования, так что, если что милости прошу в приват

Я бы советовал обратить внимание на семейство ML, а именно на
Standard ML
Есть его вариант для .NET: http://www.cl.cam.ac.uk/Research/TSG/SMLNET

И его диалект Objective Caml — http://caml.inria.fr

Еще безусловно заслуживает внимания Haskell — http://www.haskell.org, который также активно развивается в недрах Microsoft Research.

Ну, и Scheme — не даром же в MIT начинают учить программированию именно с этого языка
... << RSDN@Home 1.1.0 stable >>
Re[3]: Функциональные языки: перспектива
От: Кодт Россия  
Дата: 18.02.04 13:21
Оценка:
Здравствуйте, bkat, Вы писали:

B>Все так, но массово функциональные языки использоваться в ближайшее время не будут.

B>Обычное программирование и функциональное (впрочем и логическое тоже)
B>уж слишком отличаются. Мыслить, когда пишешь на Лиспе, надо просто иначе.
B>Это примерно так же как и с Прологом.
B>Если знаешь основы обычного программирования,
B>то в Прологе постоянно не хватает обычных переменных,
B>циклов и прочих обычных для процедургого программирования вещей.
B>С функциональными языками будет примерно то же самое.

В функциональных языках есть эмуляция различных итерационных процессов — последовательностей, циклов.

Не так уж сложно это сделать.
/// на подобии лиспа

sequence(list-of-code) =
  if(empty(list-of-code),
    nil,
    if(empty(tail(list-of-code)),
      eval(head(list-of-code)),
      tail(cons(eval(head(list-of-code)), sequence(tail(list-of-code)))
  ) )

repeat(n,code) =
  if((n=0),
    nil,
    if((n=1),
      eval(code),
      tail(eval(code), repeat(n-1,code))
  ) )

for(i,j,code) =
  if((i>j),
    nil,
    if((i=j),
      eval(code i),
      tail(eval(code), for(i+1,j,code))
  ) )
Перекуём баги на фичи!
Re[3]: Функциональные языки: перспектива
От: Larm Украина  
Дата: 18.02.04 13:58
Оценка: :))
Здравствуйте, Кодт, Вы писали:


К>Ну не грустно, не грустно. AutoCAD юзает в качестве скриптового языка диалект AutoLISP

К>Тоже небось, неспроста.

Но неспроста и то, что уже пару лет, как AutoCAD отказалась от AutoList в пользу VBA. Делаем выводы...
The God who walks is among us...
Re[3]: Функциональные языки: перспектива
От: Gaperton http://gaperton.livejournal.com
Дата: 18.02.04 14:20
Оценка: 1 (1) +1
Здравствуйте, bkat, Вы писали:

B>Все так, но массово функциональные языки использоваться в ближайшее время не будут.

B>Обычное программирование и функциональное (впрочем и логическое тоже)
B>уж слишком отличаются. Мыслить, когда пишешь на Лиспе, надо просто иначе.
B>Это примерно так же как и с Прологом.
Это верно.

B>Если знаешь основы обычного программирования,

B>то в Прологе постоянно не хватает обычных переменных,
B>циклов и прочих обычных для процедургого программирования вещей.
B>С функциональными языками будет примерно то же самое.
А вот это не совсем. Если принять во внимание, что мыслить надо иначе, то надо просто учится мыслить иначе, и все будет в порядке. Сложность чего в общественном сознании сильно преувеличена, ИМХО. Стоить упомянуть функциональный язык, и все приходят в трепет, — о-о-о, там даже переменных нет! Мы на зачет пришли (один раз открыв до этого книгу по языку) — а там валят, гады — квиксорт писать заставляют!!! Меж тем, речь идет не более чем о нескольких месяцах (сравните с С++ — еще не понятно в чью пользу разница).

Вот, к примеру, и авторы erlang считают так же:

How long does it take to learn Erlang?
It depends. (did you expect anything else?)

With a C background (or Java, C++, Pascal, etc.), it takes most people about a week before they can write nontrivial programs, about a month to feel really comfortable and a few months before feeling ready to take on something big by themselves. It helps a lot to have someone who knows how to use Erlang around for some hand-holding.

With a background which includes another declarative language (Lisp, Prolog, Haskell, Scheme), you'll be able to hack Erlang code straight away, though learning to take advantage of the fault tolerance and concurrency takes a while.


Процесс программирования на функциональном языке действительно радикально отличается от привычного. Вместо пошаговых описаний алгоритмов мы даем определения, — похоже на математику. Если пройти стандартный обучающий курс, начиная с простых задач, а не пытаться сразу писать на языке, то о циклах с переменными вспоминать не будешь. Просто языку надо учиться, и все дела.
Re[4]: Функциональные языки: перспектива
От: bkat  
Дата: 18.02.04 15:05
Оценка: +1
Здравствуйте, Кодт, Вы писали:

К>В функциональных языках есть эмуляция различных итерационных процессов — последовательностей, циклов.


В этом то и проблема.
Вместо того, чтобы учиться другой парадигме программирования,
очень часто пытаются мыслить "традиционно", программируя на Прологе и Лиспе.
Такие "эмуляции" как раз и показывают сложность привыкания к другому мышлению.
Re[5]: Функциональные языки: перспектива
От: LCR Россия lj://_lcr_
Дата: 06.10.04 10:34
Оценка:
Здравствуйте, bkat, Вы писали:

К>>В функциональных языках есть эмуляция различных итерационных процессов — последовательностей, циклов.


B>В этом то и проблема.

B>Вместо того, чтобы учиться другой парадигме программирования,
B>очень часто пытаются мыслить "традиционно", программируя на Прологе и Лиспе.
B>Такие "эмуляции" как раз и показывают сложность привыкания к другому мышлению.

Мне кажется Кодт хотел сказать немного другое: выразительные способности FL не уже, чем выразительные способности IL и привёл ряд конструкций, характерных для IL и их реализацию на FL.

Так ведь? Кодт, признавайся!
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[5]: Функциональные языки: перспектива
От: mefrill Россия  
Дата: 07.10.04 04:50
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>У Адаменко Анатолия (он из издательства Питер) вышла книжку в издательстве БХВ "Логическое программирование и Visual Prolog". Система — современная, визуальная. Самое интересное, что к книжке прилагается ЛИЦЕНЗИОННЫЙ Visual Prolog от автора — фирмы PDS Prolog.


Этот лицензионный пролог свободно можно скачать у них на сайте, сейчас правда, пятая версия уже недоступна, ибо вышла шестая. И использовать эту версию можно только в учебных целях.
Re[6]: Функциональные языки: перспектива
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.10.04 20:31
Оценка:
Здравствуйте, mefrill, Вы писали:

M>Этот лицензионный пролог свободно можно скачать у них на сайте, сейчас правда, пятая версия уже недоступна, ибо вышла шестая. И использовать эту версию можно только в учебных целях.


А ссылку можно?
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Функциональные языки: перспектива
От: codeflawer Россия  
Дата: 19.10.04 10:31
Оценка: 4 (1)
Здравствуйте, bleed, Вы писали:

B>Думаю, здесь найдутся знающие люди, потому спрошу.

B>Есть у меня идея залезть в функциональное программирование поглубже. Потому встает вопрос, какой язык выбрать для изучения (благо, выбор есть).
B>Я в свое время довольно неплохо изучил Лисп (в его Common варианте). Но это было во время учебы, и цели были чисто академические. Сейчас интерес несколько другой: применение в реальных проектах на практике.
B>Поэтому интересует современный и активно развивающийся функциональный язык. Кто что может посоветовать?
B>Еще поделитесь своими соображениями относительно перспектив функционального программирования. Или будущего нет?

Для изучения, я думаю, лучше выбрать чисто функциональный язык, чобы лучше почувствовать стиль мышления. К примеру Haskell (www.haskell.org). Среди его приемуществ — наличие стандарта (Haskell 98), однако, существует много быстро развивающихся расширений и разновидностей.
Для реальных же проектов обычно легче бывает использовать языки с побочными эффектами. Можно порекомендовать ML. Пожалуй есть 2 наиболее популярные ветви — Standard ML (среди реализаций Moscow ML и SMLNJ) и Caml. На мой взгляд, Standard ML наиболее разумный компромисс. Caml грязен до отвращения хотя, говорят, порождает весьма эффективный код.
Само собой, scheme. Тут уже упоминался. Вот и книга: http://mitpress.mit.edu/sicp/sicp.html
Ну и напоследок, — Clean (http://www.cs.kun.nl/~clean/index.html) Очень интересный чисто функциональный язык. Для некоммерческих целей доступна бесплатная реализация. Шустрый, активно развивается. Там же на сайте доступна куча научных статей по теории и реализации ФЯ и даже книга AWL по редукции графов.
Остальные ссылки легко найти через гугль.

Будущее, определенно, есть, хотя чтобы его приблизить, теоретикам программирования придется постараться. Основной недостаток ФЯ — низкая скорость — сейчас перестает быть актуальным. С распространением таких вещей как .NET все языки будут тормозить одинаково Зато ФЯ с их строгой математичесой базой открывают возмоности (по крайней мере, теоретически ) для таких вещей, как доказательство корректности программ, что для обычных языков крайне затруднительно. Возможно, это способ справиться с растущим мастабом ПО.
Re: Функциональные языки: перспектива
От: Monstr388  
Дата: 21.10.04 05:18
Оценка:
Из функциональных языков отмечу Visual Lisp — очень удобная вещь для программирования под AutoCAD. Активно продвигается Autodesk.
Re[2]: Функциональные языки: перспектива
От: INTP_mihoshi Россия  
Дата: 22.10.04 12:07
Оценка:
Здравствуйте, codeflawer, Вы писали:

C>На мой взгляд, Standard ML наиболее разумный компромисс. Caml грязен до отвращения хотя, говорят, порождает весьма эффективный код.


Знаешь, у меня Ocaml при первом (и втором) взгляде вызвал похожую реакцию. И он валялся у меня на винте без дела почти год. Взялся я за него толком только из-за отсутствия альтернатив. И только после интенсивного использования я понял, что на самом деле вся его "некрасивость" оправдана и это очень стройный и гибкий язык. Просто надо стараться писать как можно более тупой код и использовать, скажем, модули или объекты, только когда они действительно необходимы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.