Javascript как функциональный язык
Я ищу, чтобы справиться с функциональными концепциями программирования.
Я использовал Javascript в течение многих лет для сценариев на стороне клиента в веб-приложениях, и помимо использования прототипов это была простая манипуляция DOM, проверка ввода и т. д.
в последнее время, у меня часто читаю что Javascript является одним из языков, который поддерживает функциональное программирование.
с моим знакомством и опытом работы с Javascript, я предпочитаю использовать это чтобы узнать функциональное программирование. Я ожидаю, что смогу больше сосредоточиться на основных функциональных концепциях и не увязнуть или отвлечься на совершенно новый синтаксис.
Итак, в целом, является ли Javascript хорошим выбором для изучения концепций функционального программирования? Какие возможности в Javascript актуальны / поддерживают функциональное программирование?
8 ответов:
JavaScript поддерживает функции первого класса. Смотрите используйте методы функционального программирования для написания элегантного JavaScript.
Javascript Более Высокого Порядка это большой способ ознакомиться с функциональными аспектами javascript. Это также относительно короткое чтение, Если вы хотите, чтобы ваши ноги промокли, не погружаясь в Большую книгу.
Я бы сказал, что, хотя вы можете быстро понять некоторые концепции функционального программирования на JavaScript, с помощью JavaScript последовательно как функциональный язык программирования, не является общей практикой. По крайней мере, не так часто. Большинство людей не публикуют учебники, которые точно указывают, как делать функциональное программирование с помощью JavaScript-тот, на который указал марксидад, на самом деле является довольно приличным примером, но вы не найдете много этого. Функциональные аспекты не часто очевидны, так же, как когда люди используют замыкания в JavaScript, но не знают, что они делают это.
идея о том, что вы передаете две функции в качестве аргументов третьей функции, а затем возвращаете значение, связанное с первыми двумя функциями,-это продвинутый метод, который почти всегда появляется только в ядре полноценных библиотек, таких как jQuery. Самостоятельное выполнение анонимных функций и тому подобное получили распространение, но все еще не используются последовательно. Большинство учебников часто вместо этого сосредоточьтесь на возможностях OO JavaScript, например, как создавать свойства и методы, область, управление доступом, а также как использовать свойство прототипа конструкторов. Честно говоря, если функциональное программирование-это то, что вы хотите, то я бы выбрал язык, известный строго для этой возможности.
Я не помню, кто это сказал, но javascript был назван "схемой с синтаксисом Algol". Поэтому для обучения Scheme/Lisp Javascript-неплохое начало. Обратите внимание, что функциональные языки, такие как Lisp, сильно отличаются от чистых функциональных языков, таких как Haskell.
помимо "первоклассных функций" (это означает, что функции являются значениями, которые могут быть назначены переменным), лексическая область также является неотъемлемой частью того, что делает функциональный язык.
Javascript Более Высокого Порядка и Маленький Javascripter уже упоминалось. Они оба отличные тексты. Кроме того, Программирование более высокого порядка в Javascript может быть проще начать.
хотя javascript в некоторой степени поддерживает FP, он не поощряет его напрямую. Вот почему такие проекты, как функционал Оливера Стила существуют, чтобы заполнить пробелы. Поэтому я бы не рекомендовал его для изучения FP. Проверьте F# вместо этого.
Я бы рекомендовал читать Маленький Интриган, которая представляет собой довольно тонкую книгу о рекурсии и является хорошим введением в функциональный стиль. Хотя он ориентирован на схему, его можно легко применить к JavaScript, см. http://javascript.crockford.com/little.html. я нашел это очень полезным в моей разработке javascript, хотя это становится довольно сложно к концу.
Comments