В последнее время в определенных кругах наблюдается повышенный шум по поводу
функционального программирования (ФП). В одном из обсуждений ФП подкинули ссылку на статью
Why Functional Programming Matters.
Меня, как завзятого скептика по отношению к ФП статья не впечатлила. Уж сильно обсуждаемые там примеры далеки от того, чем мне приходится заниматься. Но, в попытке разобраться с примерами кода из статьи я хорошо понял, почему ФП, не смотря на свой почтенный возраст, до сих пор широко не распространено. А вот почему:
easydiff f x h = (f(x+h)-f x) / h
Мозги приходится напрягать уже для того, что бы выделить разные синтаксические элементы (список параметров, места вызова функций). Нет, что бы записать нормально:
easydiff(f, x, h) = (f(x+h)-f(x))/h
Глядишь, и народ бы к ним потянулся :)
6 комментариев:
Просто у тебя нет навыка чтения функций в ML стиле, все вполне читабельно
2Rustam:
Ну, во-первых, я просто шутил :)
А, во-вторых, если я еще что-то помню, из школьного курса математики, то в математике принято аргументы функций в выражениях заключать в скобки. Т.е. писать как-то так:
sin(x)+y*cos(x/2)
Посему, имея за плечами только базовые школьные знания, гораздо проще будет осваивать именно такой синтаксис, а не
sin x + y * cos x/2
Может быть поэтому в свое время я Бейсик и Паскаль осваивал просто в лет, поскольку запись математических операций в них была очень близка к привычной мне.
Скобки в ML образных плохой стиль, мешают частичному применению, бородатые злобные функциональщики таких шуток не поймут :)
VladD2 тоже критикует практичность примеров ;-)
Ну я не сказал, что примеры не практичные. Просто они очень далеки от меня :)
Не так давно мне попалась статья о баге, который нашли в .Net-овском JIT (http://research.microsoft.com/apps/pubs/default.aspx?id=76524). Я впечалился количеством и размером формул, которые там используются. Вероятно, ФП для таких задач -- самое оно. И для тех, кто такими задачами занимается, примеры вполне практичные.
Но ведь я смотрю со своей колокольни :)
Отправить комментарий