В данный момент я играю с Haskell и наткнулся на возможность понимания списка. Естественно, я бы использовал замыкание, чтобы делать такие вещи:
Prelude> [x|x<-[1..7],x>4] -- list comprehension
[5,6,7]
Prelude> filter (\x->x>4) [1..7] -- closure
[5,6,7]
Я все еще не чувствую этот язык, так какой путь выбрал бы программист на Haskell? Каковы различия между этими двумя решениями?