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


12

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

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

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

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

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

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

Ответы:


6

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

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


спасибо - конечно, я буду придерживаться F # (я могу использовать это в производственном коде ...), и я попытаюсь изучить больше haskell - но это сложнее, потому что мне трудно делать другие вещи, чем консольные приложения в haskell (еще). - Схема может быть хорошей (когда-то был короткий эпизод на Лиспе), но OCaml почти такой же, как F # (я думаю)
Карстен

@ CarstenKönig: есть довольно много очень интересных проектов, которые вы можете делать, не беспокоясь о пользовательском интерфейсе. Отличным вариантом является работа над языком программирования: написание простого интерпретатора Scheme или Prolog в Haskell - это отличное упражнение, которое счастливо живет в командной строке.
Тихон Джелвис

4

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

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


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

2

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

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


спасибо - я, конечно, знаю LYAH и люблю его (хорошо - там должны быть какие-то упражнения) - но сайт действительно полезен - спасибо!
Карстен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.