Я только начинаю с функционального программирования и изучаю язык программирования Haskell. Из-за того, что я только начинающий, у меня есть кусок кода, и мне нужно объяснить это:
ghci> let xxs = [[1,3,5,2,3,1,2,4,5],[1,2,3,4,5,6,7,8,9],[1,2,4,2,1,6,3,1,3,2,3,6]]
ghci> [ [ x | x <- xs, even x ] | xs <- xxs]
-- Output:
-- [[2,2,4],[2,4,6,8],[2,4,2,6,2,6]]
Я вижу, что этот код создаст новый список с четными числами в каждом подсписке.
Но я не знаю, почему x <- xs
, а затем xs <- xxs
, почему мы не можем сначала сделать x <- xxs
?