私は以下のコードを理解しようとしています:
ここでは、新しい型エイリアス Set が宣言されています。これは、Int パラメーターを取り、ブール値を返す関数です。
type Set = Int => Boolean
ここでは、新しいメソッド「contains」が宣言されています。このメソッドは、ブール値を返す Set および Int 型の 2 つのパラメーターを受け取ります。ブール値は、以前に宣言された関数に設定されます ('type Set = Int => Boolean')。しかし、Int 'elem' が Set 's' のメンバーであるかどうかを判断するために実行されるロジックは何ですか?
def contains(set: Set, elem: Int): Boolean = set(elem)
ここでは、関数を返すセットを返すメソッドが定義されていますか?
def singletonSet(elem: Int): Set = set => set == elem
コメント付きの完全なコード:
/**
* We represent a set by its characteristic function, i.e.
* its `contains` predicate.
*/
type Set = Int => Boolean
/**
* Indicates whether a set contains a given element.
*/
def contains(set: Set, elem: Int): Boolean = set(elem)
/**
* Returns the set of the one given element.
*/
def singletonSet(elem: Int): Set = set => set == elem