Нечисловые случаи использования для функционального программирования? - PullRequest
26 голосов
/ 19 декабря 2008

Я только что закончил читать книгу о скале. Меня поразило то, что каждый отдельный пример во всей книге был в той или иной форме числовым.

Как и многие программисты, я использую только математику из дискретной и комбинаторной математики, и обычно это не математика, которую я программирую явным образом. Я действительно пропускаю некоторые убедительные примеры функциональных альтернатив / дополнений к обычным алгоритмам oo.

Какие существуют нечисловые сценарии использования для функционального программирования?

Ответы [ 18 ]

2 голосов
/ 15 июля 2009

В наши дни я бы даже не подумал написать лексер / парсер DSL на нефункциональном языке (в широком смысле этого слова). ADT и сопоставление с образцом делают это намного проще.

1 голос
/ 19 декабря 2008

Сопоставление с образцом - также место, где функциональное программирование сияет, делая его действительно полезным в таких областях, как Биоинформатика.

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

1 голос
/ 15 июля 2009

Тед Ньюард написал статью о Scala, состоящую из 10 частей, предназначенную для программистов на Java, и серия завершилась написанием DSL на Scala. Этот конкретный DSL на самом деле является числовым калькулятором, но это не то, что в нем интересно, это способ легко собрать DSL на функциональном языке

Part1

Ч.2

Part3

1 голос
/ 15 июля 2009

для тех, кто считает LISP функциональным языком программирования, существует http-сервер, написанный на общем языке, написанный в 1994 году и все еще разрабатываемый в 2006 году:

для более современных вещей, вы можете спросить у google "веб-сервер haskell", вы, вероятно, найдете несколько интересных примеров. один ведет меня найти этот сайт: http://code.haskell.org/.

1 голос
/ 27 декабря 2008

Лучший конкретный пример, который я могу привести, это StringTemplate , движок шаблонов, используемый (среди многих других мест) в генераторе синтаксических анализаторов ANTLR.

В одной из статей о дизайне и разработке StringTemplate Теренс Парр писал, что изначально он скептически относился к функциональному программированию, и поэтому громко рассмеялся над собой, когда понял, что StringTemplate по сути является функциональным языком для генерации текста.

1 голос
/ 27 декабря 2008

Устранение разрыва алгоритма: функциональная программа с линейным временем для форматирования абзацев (1997)
Эге де Мур, Джереми Гиббонс
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.33.7923

Структурирование графических парадигм в TkGofer (1997), Коэн Клессен, Тон Вуллингс, Эрик Мейер http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.5525

Моделирование офисных процессов с помощью функциональных парсеров (1994). Автор Gert Florijn
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.1307

1 голос
/ 19 декабря 2008

Отметьте « Чисто функциональные структуры данных » (и вот кандидатская диссертация, которая вдохновила книгу).

Они показывают, как вы можете создавать стандартные структуры данных на чисто функциональных (без побочных эффектов) языках. Затем вы можете использовать их для программирования чего угодно.

Отказ от ответственности: я тяну Атвуд здесь, я едва прочитал пару рецензий на книгу и пролистал тезис, он в моем списке новостей.

0 голосов
/ 19 декабря 2008

LINQ берет много подсказок от функционального программирования. Изучение того, как реализован произвольный поставщик LINQ, может дать вам некоторое практическое представление.

...