摘要: 在Scala中,有两种方式可以用来支撑高阶对象。1. 类型参数: trait DataOps[A] { def show(a: A) = println(a) } val numbericOps = new DataOps[Int]{}特质上有一个泛型A,当实例化类型的时候可以填入2. ... 阅读全文
posted @ 2015-11-05 13:40 thinking!!! 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 脱糖的好处是可以用来查看implicit转换点,scala里这个功能虽然强大,但其实也是挺头疼的。脱糖的方法:1. scala -Xprint:typer [filename.scala] 脚本脱糖2. scala -Xprint:typer -e 'for(i import reflect.ru... 阅读全文
posted @ 2015-11-05 11:15 thinking!!! 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 其实type lambda就是类型系统上的currying。type lambda长的什么样子?Sample as below trait Monad[M[_]] { def point[A](a: A): M[A] def bind[A, B](m: M[A])(f: A ... 阅读全文
posted @ 2015-11-05 10:40 thinking!!! 阅读(240) 评论(0) 推荐(0) 编辑