Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
И питоновская и хаскелевская строчка кода нуждаются в комментарии.Для кого и зачем? Если вы знаете функциональное программирование хоть на каком-то уровне (даже не конкретный язык, а функциональное программирование вообще), то любая из этих строк ничуть не сложнее для понимания чем код на C#. Достаточно обернуть это дело в функцию с "говорящим" названием и всё. Как вы бы с кодом C# сделали. Чего там комментировать-то?
foldmyDescriptions = delete "" >>> List.intersperse "\n" >>> concat
myDescriptions = вырезав пустые, разбавить ньюлайнами, потом всё склеить
завести пустой аккумулятор
для каждого foo:
если аккумулятор непустой, прибавить в него ньюлайн
получить дескрипшен, если он непустой - прибавить в аккумулятор
возвратить аккумулятор
myDescriptions = map description >>> delete "" >>> List.intersperse "\n" >>> concat
List.intersperse "\n"
List.intersperse "\n" >>> concat
(List.intersperse "\n" >>> concat) ["здесь", "был", "вася"]
проверяет число на простоту
isPrime n = ...
множество всех простых чисел
primeNumbers = filter isPrime [1..]
три первых простых числа
take 3 primeNumbers
[1..] приведет к зависанию в строгом языкеtake 3 из примера) устанавливать выше и не протаскивать их сквозь всю программу это невероятно полезно в реальных программах
P.S. Кстати, есть один очень красивый язык - Ruby ;)
"/n".join(...) — это абсолютно стандартная идиома.
Чем изучение Haskell/Python вредит программисту