1

私はタイプSet=Int=>Boolean;を持っています。、および関数サブセット/ 2つのセットAとBを取得し、それらを比較する方法は?
私は次のように書いた

def union(a: Set, b: Set): Set = {
  (i: Int) => a(i).&(b(i))==b(i) 
  }

コンパイルは成功しますが<function1>、コードを実行すると出力に表示されます。

4

2 に答える 2

4

おそらく、Odersky 教授の Coursera コース「Scala での関数型プログラミングの原則」の演習を行っているようです。そうでない場合は、 などの組み込みの名前を再定義しないでくださいSet

trueいずれにせよ、あなたの質問に答えるために、「整数のセット」をそれに供給された がセットのメンバーである場合に返す関数として表すことを選択したIntので、あなたのセット関数です( をInt返す1つの引数のBoolean)。

Scala は、関数を JVM バイトコードにコンパイルするときにソース コードを記録しないため、String意味のある方法でその関数を表す を生成できず、代わり<functionN>Nが関数のアリティ (引数の数) を生成するだけです。

于 2013-02-11T15:03:46.183 に答える
0

あなたSetはクラスではないと推測できますが、それは型エイリアスですInt=>Boolean.

=>は のシンタックス シュガーであるため、FunctionNSetの型エイリアスです。Function1[Int,Boolean]

于 2013-02-11T14:25:47.057 に答える