2017-02-09 4 views
-3

やあみんな、私はスカラ座に新しいですし、私はyield文に右TYP取得するwrrongやって何knoweいけない:Scalaの初心者のための-内包表記や機能

def prim(n:Int): (Boolean, List[Int]) = divsers(n) -> List(1,n) //flatMap for-comprehensions 

def divsers(n:Int):Boolean= 
(for{ 
    d <- 1 to n 
    if((n%d)->0) 
    }yield(d) // <- what i need to put here to make it work with the function prim? 
) 
prim(11); 

私はちょうどかどうかをテストしたいがnumberは素数です。私は本当にsyntacとtyps.youに本当に問題があると言わなければならないのですが、私が仕事をしないと収量に "真"を入れても?

+0

なぜ誰かが私に-1を与えるのか分からないのですか?私はこの問題を解決するためのヒントを教えてください。多分リンク。 – thenewOne1234567890

答えて

3

あなたは、意味をなさないあらゆる種類のことをやっています。

divsers(n) -> List(1,n) 2番目の要素のタプルを返す点は、2 Intのリストですか?最初のIntは常に1であり、2番目のIntは常に引数として渡される数値ですprim()です。

if((n%d)->0)ここで別のタプルを作成しました。おそらくif (n%d) > 0と言うことを意味します。

yield ?for1からnまでの一連の数字を理解しています。それらのうちのいくつかはあなたのif状態を通過し、いくつかは通過しません。今度は新しい番号のリストがあります。それをBooleanにする方法はあなた次第です。

+0

いいえ、私はno sense部分を削除します(私は擬似コードをscalaに翻訳しています)。しかし、私はまだ最後の部分を理解していない。私はシーケンスのいくつかがif条件を通過していることを知っています。しかし、どのように私はif条件を通過する人を得ることができます。私はこのリストが変数 'd'であると思った。最終的に私はこれをboolen yield(d> 0)に変えます。 – thenewOne1234567890

+1

'val nums = for {...} yield d'を実行すると、' nums'という変数が得られます。もしあなたが探しているどんな条件であれ、あなたは_that_リストをテストすることができます。 – jwvh

関連する問題