Есть ли функциональное представление для строгой оценки? - PullRequest
0 голосов
/ 28 декабря 2011

Я хочу реализовать строгие функции сворачивания из Haskell: возможно ли это? Я читал, что макросы Lisp могут быть использованы для пересмотра языка в огромной степени, что дает вам возможность эффективно вырваться из функциональной парадигмы, когда вам нужно, и превратить ее в персонализированную парадигму, которая выполняет работу в кратчайшие сроки. путь возможен. Я на самом деле не знаю шуток, так что это может быть неправильно.

Когда вы также принимаете во внимание, что в нетипизированных лямбда-исчислениях типы данных кодируются как функции, я начинаю подозревать, что все может быть закодировано как что-либо еще (блестящая книга GEB обсуждает это в некоторых деталях ). В этом случае представление строгой оценки звучит так, как будто это должно быть легко.

Итак, как бы вы реализовали следующее в haskell?

foldl'  = -- ???
foldl1' = -- ???

Я подозреваю, что это как-то связано с монадой и / или продолжением прохождения.

1 Ответ

3 голосов
/ 28 декабря 2011

Как вы можете реализовать foldl'? Как это

Haskell предоставляет примитив seq для добавления строгости и "шаблоны взрыва", а также для удобства.

См. Также: Haskell 2010> Предопределенные типы и классы # Строгая оценка

...