4

Scala で単純な再帰関数を作成すると、このエラーが発生し続けます。私は何が欠けていますか?

scala> def count(n1:Int, n1:Int) : List[Int] = (n1 < n2) ? List() : List(n1, count((n1 - 1), n2))
<console>:1: error: ';' expected but '(' found.
   def count(n1:Int, n1:Int) : List[Int] = (n1 < n2) ? List() : List(n1, count((n1 - 1), n2))
4

2 に答える 2

6

Scala では、三項演算子はifです。したがって、?andは通常のandキーワード:に置き換えることができます。ifelse

また、どこでn2定義されていますか?私はcountこのように推測しますdef count(n1:Int, n2:Int) : List[Int] = ...

于 2013-01-17T07:04:32.463 に答える
1

これはうまくいきます!

def count(n1:Int, n2:Int) : List[Int] = if (n1 < n2) List() else n1 :: count((n1 - 1), n2))

残りは、三項演算子の代わりに句を追加count(n1:Int, n1:Int)することです。count(n1:Int,n2)if else

これを行うための同様のコードは次のようになります。def count(n1:Int, n2:Int) = (n1 to n2).reverse

于 2013-01-17T12:14:03.270 に答える