Я пытаюсь выполнить очень простое упражнение - функция фильтра:
def filter[A](x: List[A], f: A => Boolean): List[A] = {
for(item <- x){
if(f(item))
yield item
}
}
Но он не компилируется, кажется, что f (item) возвращает что-то отличное от Boolean, но я не могу понять, почему. Чтобы проверить это, я попытался сделать это:
var b = Boolean
b = f(item)
После этого я получил ошибку "выражение типа Boolean не соответствует ожидаемому типу Boolean.type". Но я не понимаю этого объяснения.
Не могли бы вы помочь понять, что здесь не так? Функция называется так:
val list = 1 :: 2 :: 3 :: 4:: 5 :: 6 :: Nil
val list2 = filter[Int](list, _ % 2 == 0)