list1.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 46 行
SCALA
46 行
object lists { abstract class List[a] { def isEmpty: Boolean; def head: a; def tail: List[a]; def prepend(x: a) = Cons[a](x, this); } def Nil[b] = new List[b] { def isEmpty: Boolean = true; def head = error("head of Nil"); def tail = error("tail of Nil"); } def Cons[c](x: c, xs: List[c]): List[c] = new List[c] { def isEmpty = false; def head = x; def tail = xs; } def foo = { val intnil = Nil[Int]; val intlist = intnil.prepend(1).prepend(1+1); val x: Int = intlist.head; val strnil = Nil[String]; val strlist = strnil.prepend("A").prepend("AA"); val y: String = strlist.head; () } class IntList() extends List[Int] { def isEmpty: Boolean = false; def head: Int = 1; def foo: List[Int] { def isEmpty: Boolean; def head: Int; def tail: List[Int] } = Nil[Int]; def tail0: List[Int] = foo.prepend(1).prepend(1+1); def tail: List[Int] = Nil[Int].prepend(1).prepend(1+1); } def foo2 = { val il1 = new IntList(); val il2 = il1.prepend(1).prepend(2); () }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?