Я просто пытаюсь понять приведенный ниже код:
Здесь объявлен новый тип alias 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