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 + -
显示快捷键?