美文网首页iOS Developer
swift实例:用闭包实现丘奇数

swift实例:用闭包实现丘奇数

作者: Theendisthebegi | 来源:发表于2017-03-15 18:46 被阅读58次

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

相关文章

  • swift实例:用闭包实现丘奇数

    1.什么是丘奇数?Church numerals是一种计数方法。 简单来说: 可以看到,丘奇数其实就是用函数来表示...

  • 关于闭包

    最终实例效果 Swift闭包的作用和OC中的block一致1、保存代码2、做耗时操作 1、闭包 写法 闭包作为函数...

  • Swift学习- 语法2

    13、函数 14、闭包 应用场景:先看OC的实现 14、尾随闭包 不要求自己写,但是要看懂,Swift中有大量闭包...

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • JavaScript - 闭包

    理解 关于闭包 答案: 用arguments.callee和闭包实现的函数封装 应用 利用闭包实现自动递增计数

  • swift4 闭包

    swift 闭包 闭包:swift 中 函数是闭包的一种类似于oc的闭包闭包表达式(匿名函数) -- 能够捕获上下...

  • Swift中的闭包

    在Swift中有两种闭包,逃逸闭包(@escaping)和非逃逸闭包(@nonescaping)。从Swift 3...

  • 100 Days of Swift - Day 06 - 闭包(

    100 Days of Swift - Day 06 - 闭包Closures 6.1 闭包 Swift函数也属于...

  • swift学习

    * 闭包 * 闭包作为属性 ```swift // 声明闭包类型 typealias callba...

网友评论

    本文标题:swift实例:用闭包实现丘奇数

    本文链接:https://www.haomeiwen.com/subject/fpkrnttx.html