Иван Лох -> [email protected] @ 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, то ты можешь слепить функцию... Все языки программирования - они про синтаксический сахар. На том или ином уровне абстракций, с которыми, благодаря этому сахару, удобно работать. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

