Так в чем же принципиальные отличия ФП от ИП?
От: Аноним  
Дата: 21.04.07 09:35
Оценка: 9 (1) +2 :))
Добрый день, товарищи!

Игрался неделю со scala, до этого читал статьи всяких проповедников ФП(один договорился до того что патnерны проектирования уже не нужны поскольку ФП самая замечательная вещь на свете). В результате пребываю в довольно странном состоянии — "И ЭТО ВСЕ? И ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ ИП?".

Начнем по порядку:

1) Функции высшего порядка (название то какое!) — принимают функции в качестве аргментов
и возвращают другме функции.
Вопрос: А чем это отличается от метода который принимает в качестве аргумента объект и возвращает другой, у которых есть не только свои методы и переменные члены, но и которые соответствуют определенной сущности предметной область.
2) Tuple (кортежи??) — еще одна замечательная вещь, ДИКО МОЩНАЯ!!!!, позволяет вернуть сразу несколько вещей (в общем случае как я понимаю — устанавливает однозначное соотношение между членами кортежа и пихает в одну упаковку?)
Вопрос: А что мне мешает вернуть объект и запихнуть туда что угодно?
И.т.д.

Я прекрасно понимаю что ФП в чистом виде мало применимо и есть такие языки как scala, сочетающие в себе оба подхода. Но вот после недели изучения скалы у меня сложилось такое впечатление что это обычный ИЯ с синтаксическим сахаром (анонимные параметризированные функции, матчинг) и несколько специфичным синтаксисом.

В процессе прочтения статей я видел кучу примеров (в основном всякие математические вычисления или сортировка). Но я нигде не видел РЕАЛЬНЫХ примеров (из тех областей для которых пишется большинство программ). Читал кусок сататью VladD2 (тот что лежит на сайте). Там описывается во введении описывается замечательный язык LISP, который является самым мощным, потому всю остальное сукс (во всяком случае посыл такой...), жду когда
появится полная версия статьи... Хотя лично я в реальной задачи скорее предпочту простой и понятный инструмент (возможно даже аскетичный) чем
супер хренорезку с функциями карьерного самосвала.

Вот мне, например, нужно написать универсальный траснпорт между подразделениями, по которму может ездить что угодно куда угодно а код менять не надо, сейчас играюся с диким гибридом Jetty+Axis2+Quarts+Xalan+JDBC (как я понимаю к ФЯ с натяжкой можно отнести только XSLT) и мнея абсолютно неважно кто, где и как считает факториал.

По поводу шаблонов проектирования: я понимаю что GoF мало соответствует функциональному подходу, но не слышал чтобы кто-нибудь из функциональщиков приводил свой аналог, позволяющий стандартным образом провести декомпозицю задачи...

P.S, Я еще не растерял интуазизм и планирую еше посидеть на скалой.... а заодно попробую найти что-то конкретное.
P.P.S. Надеюсь на вменяемую дискуссию..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.