Смотрю русский
курс "Функциональное программирование" на примере языка Haskell. Интересные моменты:
лекция 1, 31:36
Программировать в функциональном стиле нельзя, жизнь такая. Я сам по нему только курс читаю, а пишу на Джава, говорит нам преподаватель
Кубенский А.А..
лекция 2, часть 2На 1:26:44 выглядит так, что лектор не слышал про сечения, не знает, как сделать из бинарной функции унарную, например любимую в ЖЖ (+1) и затем передать её в map.
Я, конечно, понимаю, что начинающим много не надо, но хотелось бы тщательне́й.
P.S. В
лекции 3, ч. 2 (42:11) про сечения есть. К концу этой лекции вы уже сможете понимать выражения вида
searchList :: (Eq a) => a -> [a] -> Bool
searchList e = (foldr (||) False) . (map (== e))
Кстати, понравилось в лекциях Кубенского, что он активно использует foldr и показывает, фактически, как заменять этой функцией циклы.
лекция 4, часть 2 8:56 Лектор отмочил: "
вещи, которые вставлены искусственно в функциональный язык программирования, но которые не являются по существу функциональными, в частности монады". Это как? До сих пор во всю использовал list comprehension и вдруг заявляет, что это не фукционально? Списки и Maybe, которые тоже монады, искусственны? Эх, Александр Александрович, надо было лучше в школе учиться. Ну и до этого Штирлиц тоже прокалывался, заявляя, что нельзя использовать правую свёртку, то есть foldr с бесконечными списками. А как раз foldr то и можно
foldr (:) [0] [1..]