Re: Functional javascript
Иван Лох -> debian-russian@lists.debian.org @ Tue, 17 Jul 2012 14:54:00 +0400:
>> >> В функциональных языках - чистая. JS, а также Perl, Python etc. - языки
>> >> с _элементами_ функциональной парадигмы. Там функция - не first-class
>> >> entity, и количество возможных операций с нею сильно ограничено.
>>
>> ИЛ> Чем это функция в javascript не first-class объект? Вполне, себе.
>>
>> Как минимум, частичное применение приходится делать наворачиванием еще
>> одной функции сверху. Композицию (до подстановки параметров) - тоже.
>> Она не моноид (я понимаю, что в JS вообще нет этой абстракции), поэтому
>> складывать функции соответственно сложению возвращаемых значений нельзя.
>> Ну, то есть каждый раз закатывать солнце вручную - определить операцию
>> над функциями нельзя (операция над функциями - это на уровень абстракции
>> выше, чем функция, которая может получить функцию в качестве аргумента и
ИЛ> Это синтаксический сахар.
Да все языки, кроме машинных кодов - синтаксический сахар...
ИЛ> Понятно, что по-умолчанию функция в js определена так, что
ИЛ> каррировать ее надо руками. Но у нее есть свойства, которые
ИЛ> позволяют это легко сделать. Ну или functional javascript
ИЛ> подгрузить... (http://osteele.com/sources/javascript/functional/)
ИЛ> Который со страшными боями, но постепенно пролезает в стандарт.
ИЛ> P.S. "О моноидах" есть большая статья "Category Theory in JavaScript" Майка Стея,
ИЛ> http://jscategory.wordpress.com/ Он их там лихо лепит. Не без магии, кончено.
Понимаешь, это базовые абстракции, используемые функциональщиками. Если
магия требуется для того, чтобы их лепить, то когда ж дойдет дело для
того, чтобы ими пользоваться?
А так, конечно, не вопрос - если у тебя есть замыкание, то ты можешь
слепить любую хрень для работы с функциями; если у тебя есть два
указателя, один из которых - на функцию, то ты можешь слепить замыкание;
если у тебя есть JMP, то ты можешь слепить функцию... Все языки
программирования - они про синтаксический сахар. На том или ином уровне
абстракций, с которыми, благодаря этому сахару, удобно работать.
Reply to: