amarao (amarao_san) wrote,
amarao
amarao_san

если бы я писал книжку по хаскелю

... Основной причиной создания haskell стала потребность в изоляции алгоритмической части программы от критичных для функционирования приложения фрагментов кода.

Удаление "алгоритмического мусора" (раскиданных по коду фрагментов логики приложения, таких как проверка значений, вычисление переходов файле, задержек при операциях низкоуровневого ввода-вывода) позволяет значительно повысить читаемость и упростить сопровождение критичных для приложения секций кода. У этого есть и минусы - в силу необходимости откладывать вычисления (т.н. ленивые вычисления) мы не можем предсказать момент выполнения вычислений (точнее, можем, и он будет, традиционно, в тот момент, когда значение нам нужно очень срочно и прямо сейчас). Небольшой компенсацией за непредсказуемость момента исполнения алгоритма является то, что алгоритм может быть кеширован (если компилятору покажется, что это имеет смысл) или легко распараллелен на множество вычислительных узлов.

Выделение алгоритмов из операций по вводу-выводу в особый, привилегированный класс, позволяет минимизировать усилия по контролю за "чрезвычайными ситуациями", вынеся многочисленные фрагменты "если тут не то, что мы ожидали, аккуратно закрыть всё и завершить секцию" прочь от, собственно, ввода-вывода.

Благодаря компилируемости мы можем иметь производительность IO сравнимую с Си с использованием libc. К сожалению, хаскель не очень дружит с ассемблерными вставками, что иногда может быть критичным недостатком.
Tags: haskell
Subscribe

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…

  • arping'а не достаточно

    Я обнаружил, что arping не умеет делать целый запрос полностью (т.е. source mac, dest mac, source ip, dest ip). Dest либо IP, либо mac, и это немного…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments