Я хочу реализовать строгие функции сворачивания из Haskell: возможно ли это? Я читал, что макросы Lisp могут быть использованы для пересмотра языка в огромной степени, что дает вам возможность эффективно вырваться из функциональной парадигмы, когда вам нужно, и превратить ее в персонализированную парадигму, которая выполняет работу в кратчайшие сроки. путь возможен. Я на самом деле не знаю шуток, так что это может быть неправильно.
Когда вы также принимаете во внимание, что в нетипизированных лямбда-исчислениях типы данных кодируются как функции, я начинаю подозревать, что все может быть закодировано как что-либо еще (блестящая книга GEB обсуждает это в некоторых деталях ). В этом случае представление строгой оценки звучит так, как будто это должно быть легко.
Итак, как бы вы реализовали следующее в haskell?
foldl' = -- ???
foldl1' = -- ???
Я подозреваю, что это как-то связано с монадой и / или продолжением прохождения.