Приведенный ниже код воссоздает функцию take в Haskell по рекурсии:
take' :: Int->[a]->[a] take' 0 _=[] take' _ []= [] take' n (x:xs)=x : take' (n-1) xs
Я хочу создать функцию take, используя понимание списка:
take' n a=[x|x<-a]
С расширением ParallelListComp понимание списка может быть zip:
{-# LANGUAGE ParallelListComp #-} take' n a = [x | x <- a | _ <- [1..n]]