Я пытался изучить функциональное программирование, и большинство найденных мной уроков используют математику в качестве примеров для более сложных конструкций (в некоторых случаях даже простых). Почему это? Я полагаю, что-то проще может быть использовано. Это делает его трудным для изучения.
Справочная информация: я пишу программное обеспечение в течение 12 лет. Я понимаю некоторые понятия, такие как замыкания, функции первоклассных граждан и генерики. У меня могут быть проблемы с функциями более высокого порядка на некотором продвинутом уровне, но я хотел бы верить, что у меня есть базовые знания. Монады кусают меня в задницу, и на данный момент я не прошел через это (я уверен, что в конечном итоге, потому что я настойчив).
functional-programming
math
Чарльз Ламберт
источник
источник
Ответы:
Они используют математику, потому что функциональное программирование очень хорошо в моделировании математических конструкций и тесно связано с математическими понятиями, в частности, с лямбда-исчислением. Кроме того, поскольку ввод / вывод, как правило, является довольно сложным и сложным предметом для многих языков функциональной парадигмы, математика с помощью REPL различных языков сначала становится хорошим способом обучения языку.
Поскольку функциональное программирование рассматривает функции как конструкции первого класса в языке программирования, генерация функций становится очень важной. Поэтому высшая математика становится довольно важной, особенно в теории графов.
«Императивные языки» такие же математические, но все они основаны на арифметике, поскольку они ближе к машине, которую можно добавить только в любом случае. Функциональные языки с более высокой абстракцией больше склоняются к математике. Общее использование в академических кругах также не помогает, так как они привыкают и таким образом преподаются людьми, которые много знают математику и обучают людей, которые, как ожидают, изучат много математики. Таким образом, можно, так сказать, «замять это», но это вряд ли с учетом этих факторов.
http://learnyouahaskell.com/ - Вероятно, это одно из самых приятных введений в функциональное программирование, я дважды проверил, и там нет ничего, кроме базовой алгебры и теории графов.
источник
Есть множество причин, и все они связаны между собой:
Кроме того, FP на самом деле не более математичен, чем другие парадигмы, но ключевые концепции (функции как первоклассные граждане, функции высшего порядка, замыкания и чистота) требуют определенного мышления. В какой-то момент ваш разум должен пойти «щелкнуть»; Если вы понимаете эти 4 основных идеи, то остальные, вероятно, будут такими же легкими, как и любая другая парадигма.
источник
Это потому, что в основном компьютерное программирование - это математика. Функциональные языки были разработаны с учетом этого, и поэтому большая часть учебников сосредоточена на математике.
Трудно учиться, только если вы не привыкли думать о компьютерном программировании как о математической основе.
источник
Я думаю, что «Маленький интриган» - это отличное введение в функциональное программирование, и оно совсем не математическое. Он не попадает в монады, так что он может быть слишком базовым для вашего вкуса, но делает вывод Y-комбинатора ближе к концу.
Я недавно прошел через это после того, как 12 лет назад не занимался никаким функциональным программированием, и это было отличным занятием, я определенно чувствую себя готовым заняться более продвинутыми вещами после проработки большинства проблем в книге с использованием Racket.
источник