Утилита 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

Другие вопросы по тегам