Swift 4.0 废弃的柯里化
2024-10-19 03:36:40
// 柯里化
// http://www.jianshu.com/p/6eaacadafa1a Swift 2.0 柯里化方法 (废弃)
// http://www.swifthumb.com/thread-16079-1-1.html Swift 3.0 柯里化常用方法推荐
// http://www.ruanyifeng.com/blog/2012/04/functional_programming.html 函数式编程
/*
Curried function declaration syntax func foo(x: Int)(y: Int) is of limited usefulness and creates a lot of language and implementation complexity. We should remove it.
(函数的 currying 特性的使用场景并不大,但他会增加很多语言的复杂性,所以需要删除它)
*/
class Currying { // uncurried:普通函数 // 接收多个参数的函数(与类相关的函数,统称为方法,但是这里就直接说函数了,方便理解) func add(a: Int, b: Int, c: Int) -> Int{ print("\(a) + \(b) + \(c)") return a + b + c } // curried:柯里化函数 --> 本质函数式编程思想 func addCur(_ a: Int) -> (Int) -> (Int) -> Int{ return { b in return { c in a + b + c } } } } let curry = Currying() var number = Currying.addCur(curry)()()() print(number) // NO.2 let datePrint:(Int)->(Int)->(String)->Void = { month in print("\(month)月") return{ day in print("\(day)日") return{ action in print("\(action)") } } } let actionPrint = datePrint()() actionPrint("写详细")
最新文章
- JAVA插入sql代码
- R----stringr包介绍学习
- NDK开发之引用(局部引用,全局引用,虚全局引用)
- Java垃圾收集器之--Garbage-First Collector
- cookie、localStorage、sessionStorage之间的区别
- Dynamics CRM 2011编程系列(60):JS编程之CRUD辅助类(JQuery版)
- 一个测ip和端口是否联通的工具类
- C++教材
- Swift try try! try?使用和区别
- 轻松学JVM(二)——内存模型、可见性、指令重排序
- hdu 6068--Classic Quotation(kmp+DP)
- it's time to change myself now (2018.10.31)
- [转]Angular4 数据请求 POST、GET
- mysql 备份 恢复
- go语言中的strings常用函数和格式化输出
- Amount of Degrees(数位dp)
- 《OpenGL® ES™ 3.0 Programming Guide》读书笔记1 ----总览
- 对2个hex(16进制)字符串进行异或操作
- 一点做用户画像的人生经验:ID强打通
- (转)为什么所有浏览器的user-agent都是Mozilla
热门文章
- 【Maven】Nexus配置和使用
- 2018.10.12 bzoj4712: 洪水(树链剖分)
- 2018.09.15点名器(简单dp)
- php读取用友u8采购入库单列表及详细
- @Autowired 和 @Qualifier
- ";请求被中止: 未能创建 SSL/TLS 安全通道";解决办法
- Linux中的LVM和软RAID
- Paul Simon -- Duncan
- 章文嵩博士和他背后的负载均衡(LOAD BANLANCER)帝国
- 一起学习MVC(4)Controllers的学习