小编Rat*_*man的帖子

scala中函数式编程的一个例子

我正在学习斯卡拉.感谢Odersky和所有其他作者的出色工作,这是非常有前途的.

我把一个欧拉问题(http://projecteuler.net/)带到了一个更加极小的例子.而我正试图以功能的方式.所以这不是"请立即回答我,否则我的老板会杀了我",但是"如果你有时间,请你帮助一位势在必行的语言程序员去实现功能世界吗?"

问题:我想要一个扑克牌课.一个扑克之手是由一些卡片组成的,从0到5.我想建立一个卡片列表,这就是:我的Hand类将是不可变的,如果我想添加一张卡片,那么我创建了一个新的Hand对象.所以我需要一个可以创建为"val"的Card集合,而不是var.第一步:构造函数,每个卡数一个.但是Card的集合在每个构造函数中处理,所以我必须将它作为var!

这是代码,Card类只是一个Suit和一个Value,作为一个字符串传递给构造函数("5S"是黑桃的5个):

class Hand(mycards : List[Card]) {
  // this should be val, I guess
  private var cards : List[Card] = {
    if (mycards.length>5)
      throw new IllegalArgumentException(
        "Illegal number of cards: " + mycards.length);
    sortCards(mycards)
  }

  // full hand constructor
  def this(a : String, b : String, c : String, d : String, e : String) = {
      this(Nil)

      // assign cards
      val cardBuffer = new ListBuffer[Card]()
      if ( a!=null ) cardBuffer += new Card(a)
      if ( …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

7
推荐指数
2
解决办法
4244
查看次数

标签 统计

functional-programming ×1

scala ×1