Haskell

Jul 25, 2012 18:36

Предварительные выводы про хаскель, сделанные по микро-опыту, по возможности очищенные от эмоций:

  • Хаскель очень напичкан семантическими конструкциями и, как следствие, очень напичкан синтаксически. Каждая точка, отступ, перенос строки важны;
  • Хаскель действительно заставляет разбираться с типами функций, отказываясь запускать код. Т.е. я охотно верю в то, что рефакторить работающий код даже приятно, по сравнению с динамическими языками;
  • Хаскель из коробки чудес со скоростью не даёт. Если я вижу произвольный небольшой одноядерный код на эрланге/руби/etc и переписываю его на C, то скорее всего я сходу получаю ускорение (пусть и на синтетических тестах). Тут надо вникать;
  • Монады - это сложно и сходу очень непонятно. Ко всему прочему, монады - это хорошо спрятанный this. Пример:

    readDeltaMd previous = do
    dTime <- decodeUnsigned
    dBids <- readDeltaQuotes
    dAsks <- readDeltaQuotes
    alignAt 8

    alignAt, как и функции выше на самом деле по сути представляет из себя мутабельное изменение состояния хорошо спрятанного this, который попал в эту функцию откуда-то извне. При грамотном использовании, наверное это может быть изящно. После эрланга это очень непривычно и сложно, потому что скрытый стейт;
  • Хаскель очень жесток к типам. Есть вопрос: мешает это при наличии навыка прототипированию или нет.


Короче, экзерсис прошел успешно. Я рад, что у меня получилось всё таки собрать хоть как-то работающую программу на хаскеле и теперь я хотя бы примерно понимаю масштаб непонимания этой пропасти концепций и идей.

Надо будет повторить то же самое на быдлоокамле.

haskell, fp

Previous post Next post
Up