Как воссоздать функцию «take» по списку в Haskell? - PullRequest
0 голосов
/ 29 мая 2019

Приведенный ниже код воссоздает функцию 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]

1 Ответ

6 голосов
/ 29 мая 2019

С расширением ParallelListComp понимание списка может быть zip:

{-# LANGUAGE ParallelListComp #-}

take' n a = [x | x <- a | _ <- [1..n]]
...