Lambda演算中的迭代函数

| 我有这样的功能
iter :: Int -> (a -> a) -> a -> a    
iter n f a = f (f ... (f a) .. )
如何在未类型化的Lambda演算中定义此类函数? 任何提示/帮助将不胜感激。     
已邀请:
在纯lambda演算中,数字本身并不存在。您必须设计数字的表示形式(并表明确实表现得像数字)。基本思想是可以定义数字,以便它们恰好是您需要的迭代函数:
n
是一个lambda项,当给定函数
f
时,计算compute2ѭ的
n
次迭代。 这是一个称为教堂编码的想法。     
iter == (rec g (fn f (fn n (fn x ((= n 0) x (g f (- n 1) (f x))))))) 
    

要回复问题请先登录注册