Веб-программирование с функциями высшего порядка

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

Я прочитал нашу книгу, но веб-программирование не было упомянуто, я полагаю, это было просто то, что профессор упомянул не по теме, но это немного разожгло мой интерес.

Спасибо!


person OogaBooga    schedule 19.11.2010    source источник
comment
Они полезны для любого (взять с солью, но) нетривиального программирования во многих парадигмах (и, безусловно, в императивных, например, недекларативных). Веб-программирование — это лишь небольшая часть (возможно, нетривиального) программирования. Очень тривиальным примером функции высшего порядка является применение карты для создания списка имен пользователей из списка идентификаторов пользователей. Это даже не очень надумано.   -  person    schedule 19.11.2010


Ответы (3)


Я не совсем уверен, о каких случаях мог говорить ваш профессор, но функции более высокого порядка широко используются в JavaScript. Простым примером функции более высокого порядка (функция, принимающая функцию в качестве параметра и/или возвращающая функцию в результате) может быть функция jQuery ready():

$(document).ready(function(){
    alert('The DOM is ready for manipulation!');
});

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

person Justin Niessner    schedule 19.11.2010

Воспроизведение, (Scala) Lift (Scala), SeaSide (Smalltalk) и Webmachine (Erlang) — это три веб-фреймворка, которые в значительной степени полагаются на функциональные идеи, такие как функции высшего порядка.

person oluies    schedule 19.11.2010

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

Основная идея такова:

  • Веб-приложение — это просто функция, которая отображает запрос в ответ.
  • Таким образом, вы можете составить все веб-приложение, используя функции более высокого порядка.
person mikera    schedule 14.04.2011