[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Functional javascript



On Tue, Jul 17, 2012 at 11:20:44AM +0400, Artem Chuprina wrote:
> Иван Лох -> debian-russian@lists.debian.org  @ Tue, 17 Jul 2012 01:37:29 +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/ Он их там лихо лепит. Не без магии, кончено. 


-- 
Иван Лох


Reply to: