Если бы вы прочитали условие задачи, такое как что-то найденное на TopCoder, и преобразовали его в представление лямбда-исчисления, было бы простым упражнением «преобразовать» его в код Haskell или Lisp?
Другими словами, можно ли решить проблему, используя формальную систему лямбда-исчисления, а затем тривиально реализовать на функциональном языке программирования?
λx:τ. M
переводится в\(x :: τ) -> M
, а приложение функцииM N
остается прежним. Проблема возникает с нетипизированным лямбда-исчислением, поскольку есть термы, которые нельзя типизировать без свертывания/развертывания бесконечных типов (очень хороший пример — комбинаторY
). - person Vitus   schedule 18.04.2012