Ой, вот такого рода "знакомство с Haskell" бы только повредило, на мой взгляд. Ведь все очень просто, автору хорошо бы идти от существа задачи. Есть очень мощный подход: представьте, что уже имеется подходящая нотация для описания решения задачи, далее просто опишите решение. А затем реализуйте и нотацию. В данном случае выразительным описанием, очевидно, выступает грамматика в БНФ. И в дело вступают технические моменты, как грамматику выразить прямо на JS, что для этого нужно. Гораздо хуже, когда человек начинает думать в терминах шаблонов проектирования изначально. В этом смысле неважно, речь ли об ООП, или о ФП.
「 Есть очень мощный подход: представьте, что уже имеется подходящая нотация для описания решения задачи, далее просто опишите решение. А затем реализуйте и нотацию. 」
Да, это действительно очень мощный подход.
Но, мне кажется, разные языки дают разную поддержку для этого подхода. Т.е., в одних языках проще получается реализовывать свои концепции, а в других — сложней. Один язык/компилятор бьет тебя по рукам, или вынуждает городить длинные конструкции, а другой — даже позволяет стрелять себе в ногу ;)
Наверное, это можно назвать мощностью выразительных средств языка. Как по вашему, возможно ли как-то более-менее объективно упорядочить языки по этой величине?
Или тут больше играют субъективные факторы?
#question #comparison