首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Martin Odersky Scala编程公开课 其次周作业

2013-10-03 
Martin Odersky Scala编程公开课 第二周作业Functional Programming Principles in Scala by Martin Oders

Martin Odersky Scala编程公开课 第二周作业

Functional Programming Principles in Scala 
by Martin Odersky

这一周的主要内容是函数。函数是scala语言最重要的概念,既可以当作函数的参数,也可以作为返回值。函数还可以拥有多个参数列表。

因此,这次作业就是要把函数作为参数和返回值,实现set数据类型的一些方法。而set本身却是一个函数,这一点非常奇妙。另外测试程序也要自己实现。

编程过程中,发现有些函数实现的方法非常复杂,不知道是否有简化的方法。

作业要求如下:

  test("union contains all elements") {    new TestSets {      val s = union(s1, s2)      assert(contains(s, 1), "Union 1")      assert(contains(s, 2), "Union 2")      assert(!contains(s, 3), "Union 3")    }  }    test("union intersect diff"){    def a(x:Int)= x<20    def b(x:Int)= x>10    assert(contains(union(a,b), 55), "Union")    assert(contains(union(a,b), 5), "Union")    assert(contains(intersect(a,b), 15), "intersect")    assert(!contains(diff(a,b), 15), "diff")    assert(contains(diff(a,b), 5), "diff")      }    test("forall exists map"){    def a(x:Int)=x<10    assert(forall(a,x=>x*x>=0),"forall")    assert(!forall(a,x=>x*x<60),"forall")        assert(exists(a,x=>x*10==50),"exists")    assert(!exists(a,x=>x*10==120),"exists")        assert(contains(map(a,x=>x*x),64),"contains")    assert(!contains(map(a,x=>x*x),640),"contains")  }


热点排行