下面的代码通过递归在Haskell中重新创建“ take”功能:
take' :: Int->[a]->[a]
take' 0 _=[]
take' _ []= []
take' n (x:xs)=x : take' (n-1) xs
我想使用列表理解来创建'take'函数:
take' n a=[x|x<-a]
答案 0 :(得分:6)
使用ParallelListComp扩展,列表理解可以压缩:
{-# LANGUAGE ParallelListComp #-}
take' n a = [x | x <- a | _ <- [1..n]]