3つの関数があります。最初のものはブール条件の型エイリアスを定義しますスカラ特性関数
type Set = Int => Boolean
これはエイリアス定義であることを理解しています。今二fucntion
def contains(set: Set, elem: Int): Boolean = set(elem)
はelem:Int
上(Int=>Boolean)
を呼び出します。
- QUESTION 1:機能のロジックは
Set
の下にありますか? つまり、
contains
などを呼び出すときにの関数の実際のパラメータ(この場合はcontains
は高次関数です)を渡す必要があります。偶数に設定された:第三の機能でval in:Boolean = contains({x=>(x%2)==0},2)
を:
def singletonSet(elem: Int): Set = set => set == elem
- 質問2:
set
が形成来るのでしょうか?正式なパラメータリストにはありません。
1)アンダーサウド 2)実際に 'Int => Boolean'よりも' Set'が返された場合、返されるのは 'singletonSet'です。だから、ここの 'set'は' Int'ですか? 'singletonSet'への呼び出しは、偶数のセットのようにどのように見えますか? – mCs
ええ、(2)の 'set'は' Int'型です。 'singletonSet' _cannot_は偶数の集合を返します。シングルトンと呼ばれるのは、それが渡された' elem'である1つの項目(1つの整数)だけを返します。 –
そのように 'singletonSet'の' Set'の戻り値の型は 'Int => Boolean'の評価を' set:Int =>(set:Int == elem:Int) 'に変更したものです。 – mCs