Использование мысленных образов в функциональном программировании - PullRequest
3 голосов
/ 20 января 2011

При использовании чисто функционального языка могут ли какие-либо формы мысленных образов или диаграмм помочь визуализировать рекурсию и развить продолжения?

1 Ответ

5 голосов
/ 20 января 2011

Прежде всего, взгляните на это связанное обсуждение.

Как указывалось там, функциональное программирование уже довольно близко к математической записи и может быть хорошо понято и манипулировано символическая математика . Диаграммы в смысле ОО часто не нужны, поскольку они могут моделировать взаимодействия состояний, которые просто не существуют в FP.

Например, рекурсия очень хорошо обрабатывается в этом символическом подходе.Вы можете непосредственно расширить определения как истинные уравнения в математическом смысле, чтобы доказать характеристики и , чтобы получить довольно прямой, почти псевдокодоподобный обзор.

map f [] = []
map f (x:xs) = (f x) : map f xs

Ничего более ясногочем это!

Тем не менее, есть некоторые метафоры , которые полезны для определенных понятий, таких как функциональные средства моделирования состояния / последовательности, то есть монады , аппликативных, стрелки .Есть много хороших изображений, чтобы визуализировать, как они распространяют свои результаты.Например: метафора конвейерной ленты для стрелки :

alt text

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