我只是想理解下面的代码:
这里声明了一个新类型别名 Set,它是一个接受 Int 参数并返回布尔值的函数
type Set = Int => Boolean
这里声明了一个新方法“contains”,它接受两个类型为 Set 和 Int 的参数,返回一个布尔值。布尔值设置为前面声明的函数 ('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