2015-05-01 3 views
6

Чтение об Eff-Language, я подумал, есть ли подобные идеи, которые уже используются. В Eff-Language упоминается документ под названием «Вывод алгебраических эффектов», в котором описывается алгоритм, который Eff использует для вывода эффектов. Есть ли сходства?Является ли Eff-monad в purescript вдохновленным www.eff-lang.org?

ответ

9

Я знал об Eff, когда писал систему эффектов в PureScript, поэтому вы можете сказать, что она была вдохновлена ​​им. Другим источником вдохновения был язык программирования Koka, в частности документ «Кока: программирование с помощью типов полиморфных эффектов». Учитывая, что PureScript уже имел типы строк для работы с записями, имеет смысл попытаться перепрофилировать его для использования в качестве системы эффектов.

PureScript использует эффектную монаду, называемую Eff (без отношения!) Для обработки «родных» эффектов (то есть эффектов, предоставляемых системой времени выполнения, а не эффектов «пользовательской», например, моделирование с использованием монадных трансформаторов в Haskell). Eff очень похож на Haskell's IO, но уточняется рядом типов эффектов. Таким образом, путь к эффектам на основе строк в PureScript был очень простым - нам просто пришлось разрешить строки содержать типы с видами, отличными от *.

Смежные вопросы