как перейти на более высокий уровень функционального программирования [закрыто]

12

Сначала я приношу свои извинения, если это не подходящее место для этого вопроса, но я думаю, что th.CS не является подходящим местом, точно так же как и StackOverflow.

Мне действительно нравится функциональное программирование, и я думаю, что я парень среднего уровня в F # и достаточно хорошо понимаю основные концепции Haskell - и да, я думаю, я знаю / упал, как будто я знаю, что такое Монада.

Теперь я действительно хочу поднять это на следующий уровень и понять, о чем весь разговор о функторах и прочем. Я просто не знаю с чего начать.

Читать что-нибудь о лямбда-исчислении? Теория категорий? И то, и другое я знаю немного и не думаю, что это правильный / самый быстрый способ просвещения.

Может быть, вы можете дать мне несколько советов по этому поводу.

PS: я не боюсь математики, и я не расстраиваюсь от упражнений легко, но я бы предпочел некоторые вступления / текст, где вы можете написать какой-то код, потому что таким образом вы получите обратную связь сразу.

Карстен
источник

Ответы:

6

F # - хорошее начало, вы должны продолжать с Haskell, и обязательно прочитать лямбда-исчисление и прочитать упомянутые выше лямбда-статьи .

Использование гибридного языка (Clojure, Scala, OCaml и т. Д.) Может помочь облегчить его, если вы работаете в фоновом режиме, но я думаю, что если вы действительно хотите понять функциональное мышление программистов, вам лучше пойти на реальная вещь (Haskell, Lisp, ...).

haylem
источник
спасибо - конечно, я буду придерживаться F # (я могу использовать это в производственном коде ...), и я попытаюсь изучить больше haskell - но это сложнее, потому что мне трудно делать другие вещи, чем консольные приложения в haskell (еще). - Схема может быть хорошей (когда-то был короткий эпизод на Лиспе), но OCaml почти такой же, как F # (я думаю)
Карстен
@ CarstenKönig: есть довольно много очень интересных проектов, которые вы можете делать, не беспокоясь о пользовательском интерфейсе. Отличным вариантом является работа над языком программирования: написание простого интерпретатора Scheme или Prolog в Haskell - это отличное упражнение, которое счастливо живет в командной строке.
Тихон Джелвис
4

Я рекомендую вам прочитать эти три книги, если у вас есть время:

Эти три книги обогатят ваше понимание функционального программирования в целом.

Chiron
источник
Время в банкомате не проблема - и я все равно найду время, если по вечерам найду энергию ... оно может быть медленным, но обычно я могу много читать. Конечно, с такими книгами мой темп замедлится до ползти ... спасибо (к сожалению, последний, кажется, вышел из печати ... не выдерживает чтения с экрана)
Карстен
2

Узнайте, что Haskell имеет отличное введение в функторы .

О действительно тяжелых вещах можно прочитать на отличном сайте Олега Киселева : продолжения с разделителями, молнии, итерации, ...

Фрэнк Шиарар
источник
спасибо - я, конечно, знаю LYAH и люблю его (хорошо - там должны быть какие-то упражнения) - но сайт действительно полезен - спасибо!
Карстен