Ищу лексику функционального программирования - PullRequest
15 голосов
/ 24 апреля 2010

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

Например, я неоднократно сталкивался с ними: Функтором, Стрелкой, Категорией, Клейсли, Монадой, Моноидом, настоящим зоопарком Морфизмов и т. Д. Я также заметил, что многие из них появляются с префиксами, такими как «ковариантный», «со-», "эндо-" и т. д.

Из них я могу сказать, что на самом деле понимаю Monoid и Covariant и в некотором роде получаю Monad, но остальные все еще остаются для меня бредом. (Обратите внимание, что я не имею в виду этот список как исчерпывающий, и я не хочу, чтобы они здесь были определены или описаны для меня, я ищу учебные ресурсы.)

Может ли кто-нибудь указать мне на лексикон FP? Он не обязательно должен быть онлайн, пока его можно найти (и это не редкий том, за который мне пришлось бы платить много десятков долларов).

Ответы [ 3 ]

9 голосов
/ 25 апреля 2010

Как уже указывали другие ответы, чтобы по-настоящему понять эти термины, вам необходимо изучить теорию категорий. Тем не менее, теория категорий очень абстрактна и может не помочь вам сразу же создать интуицию. Чтобы увидеть абстрактные концепции в действии, я настоятельно рекомендую Typeclassopedia ( PDF ) ( объявление в блоге ).

7 голосов
/ 25 апреля 2010

Это не термины функционального программирования; это термины из теории категорий. Это правда, что горстка элитных функциональных программистов, кажется, использует теорию категорий, чтобы получить представление о функциональном программировании (Конал Эллиот, Ральф Хинце, Чунг-Чие Шан, звонят в ваш офис), но эти люди в меньшинстве. Что касается этих терминов, я боролся с книгой Пирса, но я не знаю лучшего источника - хотя Дэн Пипони имеет много связанных материалов в своем блоге; Я призываю вас посмотреть там. ( 2012 обновление : у Гарольда Симмонса есть новая книга по теории категорий, которая выглядит довольно хорошо, и она была очень хорошо рассмотрена Computing Reviews [за платным экраном]. Единственная жалоба заключается в том, что все примеры из математики, а не из вычислений.)

Некоторые слова, которые вы могли бы услышать от функциональных программистов: «функция карты», «функция сгиба», «функция высшего порядка», «бессмысленное программирование», «тип суммы», «тип продукта», «катаморфизм», "Церковное кодирование", "вычислительные программы", "программирование на основе типов", "правильный вызов хвоста", "параметр накопления". Я не знаю хорошей лексики, собранной в одном месте. Книга Грэма Хаттона Программирование на Хаскеле может послужить началом или более старая книга Ричарда Берда и Фила Уодлера.

5 голосов
/ 24 апреля 2010

Многие из терминов, которые вы использовали в качестве примера, взяты из теории категорий, и лучший ресурс, который я знаю в данных обстоятельствах, - «Основная теория категорий для компьютерных ученых» Бенджамина Пирса * *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...