Вопрос, который я пытаюсь решить,
Write a split(L) which returns {Even, Odd}.
Доступный код, который у меня есть, выглядит так
-export([even/1, odd/1, filter/2, split_using_filter/1]).
even(Integer) -> Integer rem 2 =:= 0.
odd(Integer) -> not even(Integer).
filter(F, L) -> [T || T <- L, F(T) =:= true].
split_using_filter(L) -> Even = filter(fun(X) -> X band 1 == 0 end, L),
Odd = filter(fun(X) -> X band 1 == 1 end, L),
{Even, Odd}.
То, что я делаю сейчас, проходит
fun(X) -> X band 1 == 0 end
как функция even
и аналогично для odd
Вопрос
Есть ли способ передать функцию even(Integer)
в качестве аргумента функции filter
? а не переписывать логику?
Спасибо