我试图通过列表中的所有元素作为参数
运行帮助功能-- Help Function
helpFun :: Int -> Int -> Int
helpFun x y = x + y
-- Main Function
mainfun :: [Int] -> [Int]
mainfun x = helpfun 2 [j | j <- x]
如果我们假设x是int [0, 1, 2, 3, 4, 5, 6]
的列表
我该怎么做才能让它为列表中的所有元素运行helpFun
?
我想从helpFun 2 0
到helpFun 2 6
所以就像
一样for a in list:
tt = helpFun 2 a
return tt
答案 0 :(得分:10)
在Haskell中没有for循环这样的东西。
要将函数应用于列表中的每个元素,您可以使用map
或列表推导。既然你已经有了列表理解(目前没有做任何事情),那就让我们使用:
mainfun xs = [helpfun 2 x | x <- xs]
使用map
的替代方法是:
mainfun xs = map (helpfun 2) xs