Утилита Haskell для освобождения функции
Я хотел бы быстро и правильно сократить функции, чтобы указывать свободную форму в Haskell. Я бы предпочел производить довольно читаемые результаты. Как я должен идти об этом?
2 ответа
На самом деле есть программа под названием "pointfree"
Сделай это
cabal install pointfree
тогда это в командной строке
> pointfree "\x -> x+1"
(1 +)
Предупреждение - хотя некоторые бессмысленные результаты замечательны, другие довольно страшны...
Википедия Haskell охватывает инструменты для точечного рефакторинга здесь. В основном это касается Lambdabot, бота IRC, который делает бессмысленный и точный рефакторинг:
@pl \x y -> EQ == compare x y
((EQ ==) .) . compare
[1] Пример из http://ircbrowse.net/browse/haskell?id=19908612×tamp=1421726397