2017-09-24 4 views
0

/他のスカラであればこれらはエラーです単純な式/ IIの違法開始

scala.scala:13: error: not found: value listaFibonaccisAux 
    listaFibonaccisAux int 0 
^
scala.scala:4: error: illegal start of simple expression 
    if (int>fibby) fibby :: (listaFibonaccisAux int (n+1)) 
^
scala.scala:1: error: illegal start of definition 
    else List() 
^
scala.scala:1: error: eof expected but '}' found. 
    } 
^

そしてここでは、私のコードですが、エラーがシンプルif/else文を参照しているように見える、私はすでにラッピングを試してみましたが、アンラップ括弧内のものは、それは助けていませんでした:

def listaFibonaccis (int:Int):List[Int]= 
    { 
    listaFibonaccisAux (int, 0) 
    } 

def listaFibonaccisAux (int:Int, n:Int):List[Int]= 
    { 
    var fibby = fib n 
    if (int> fibby) 
    fibby :: (listaFibonaccisAux (int, (n+1))) 
    else 
    List() 
    } 

def fib(n : Int) : Int = n match 
    { 
    case 0 | 1 => n 
    case _ => fib(n-1) + fib(n-2) 
    } 

fibは、フィボナッチ数列に番号nを見つけ

listaFibonaccisAuxはFIBを使用してフィボナッチ数のリストを作成し、数字はint型

listaFibonaccisより大きく取得するときに停止することは、与えプレーンif/else文のそれに

を開始するには0と他のものを呼び出すためだけの単純なラッパーであります私のトラブル、それは悲しいです。

答えて

3

if/elseについては、前に行が正しく終了していないと思われるので、コンパイラは文句を言っています。

これを試してみてください:fib(n)

"中置"(スペース表記)が、時には便利ですが...

instance.method(arg)

instance method argに...あなたがきたとして、それが適用できませんそれを使用しようとしました。

+0

Scalaが括弧を必要とする場所とそれがどこに狂っているのかわかりません、これはうまくいきました。 – Jose

+0

あなたが気持ちを感じるまで、そして最も単純で最も明白な状況でのみ、中断を避けるのが普通です。 – jwvh

+0

通常の関数呼び出しでは、節点を使用することはできません。メンバ関数が必要です。関数名は左辺と右辺の間に置かれているため、「中置」と呼ばれます。 – Suma

関連する問題