Tof*_*fiq 0 recursion haskell functional-programming list-comprehension
下面的代码通过递归在Haskell中重新创建“ take”函数:
take' :: Int->[a]->[a]
take' 0 _=[]
take' _ []= []
take' n (x:xs)=x : take' (n-1) xs
Run Code Online (Sandbox Code Playgroud)
我想使用列表理解来创建'take'函数:
take' n a=[x|x<-a]
Run Code Online (Sandbox Code Playgroud)
使用ParallelListComp扩展,列表理解可以压缩:
{-# LANGUAGE ParallelListComp #-}
take' n a = [x | x <- a | _ <- [1..n]]
Run Code Online (Sandbox Code Playgroud)