Из вопроса, связанного здесь, я нашел эту реализацию Союза в Scala:
def union(a: Set, b: Set): Set = i => a(i) || b(i)
И Set - это функция типа:
type Set = Int => Boolean
Теперь я понимаю, что в Scala здесь функция отображается от Int до Boolean, и я также понимаю, как этот оператор выполняется:
a(i) || b(i)
Но я не понимаю, что такое "я" здесь. От куда это? И когда он находит соответствие между наборами, он возвращает true, если это действительно так, где его фильтровать?