Привет, я новичок в Scala и программировании в целом. Я взял курс Scala на coursera, одним из заданий было создание функций, которые принимают наборы как параметры и возвращают другой набор, который является объединением/пересечением/разностью двух наборов. Вот решение для пересечения:Как scala выведенные типы в этом примере кода?
def intersect(s: Set, t: Set): Set = elem => s(elem) && t(elem)
Я не понимаю элем. Как Scala знает, что это элемент набора, и почему, если его пытались в shell, он возвращает ошибку: отсутствует тип параметра.
Растворы для объединения и разности (то же):
def union(s: Set, t: Set): Set = elem => s(elem) || t(elem)
def diff(s: Set, t: Set): Set = elem => s(elem) && !t(elem)
От Scala Set:
Общий признак для изменяемых наборов.
Набор представляет собой набор, который не содержит повторяющихся элементов.
Замечание по реализации: Эта характеристика обеспечивает большую часть операций набора независимо от его представления. Обычно он унаследован конкретными реализациями множеств.
Для реализации конкретного набора, необходимо обеспечить реализацию следующих методов:
def contains(key: A): Boolean
def iterator: Iterator[A]
def +(elem: A): This
def -(elem: A): This
Посмотрите на определение 'Set', и вы должны выяснить, что такое' elem'. Кроме того, вы должны опубликовать определение 'Set', если вы хотите получить ответ (я просто знаю его, потому что я взял тот же класс). –