1.什么是丘奇数?
Church numerals是一种计数方法。 简单来说:
0=x,1=f(x),2=f(f(x))...
可以看到,丘奇数其实就是用函数来表示数字,而且函数有限制,函数值必须能够当函数变量来用。如果用代码去实现丘奇数,也就是有三个变量
丘奇数:
0=x,1=f(x),2=f(f(x))...
也就是有三个变量,函数变量x,次数num(即0,1,2),f(即该函数) */
func churchNumeral(f:((Float) -> Float),x:Float,num:Int) -> Float
2.那么怎么去实现它呢?
var tempX:Float = x
if num > 0 {
for _ in 1...num {
tempX = f(tempX)
}
}
return tempX;
3.那么接下来用闭包去调用它
print(churchNumeral(f: {$0*2}, x: 1.5, num: 10))
意思就是f自定义为2*x,x=1.5的情况下,10的丘奇数就是
1536.0
再比如,将f定义为x的平方,x=2,则4的丘奇数就是
print(churchNumeral(f: {$0*$0}, x: 2, num: 4))
结果是
65536.0
网友评论