函数式编程,Haskell将函数应用于变量列表

use*_*239 1 haskell functional-programming list

我有一个类型的功能Csp -> Var -> Int -> Csp,我想将这个功能应用到一个列表中[Var],只是想知道是否有人可以帮助我,我完全被竹子!

ham*_*mar 7

从你的评论中,听起来你想要一个折叠,例如:

foo :: Csp -> Var -> Int -> Csp -- your function

bar :: Csp -> [Var] -> Int -> Csp
bar c0 vs x = foldl (\c v -> foo c v x) c0 vs
Run Code Online (Sandbox Code Playgroud)

尽管可能值得更改参数的顺序以使其更适合部分应用:

foo :: Int -> Csp -> Var -> Csp

bar :: Int -> Csp -> [Var] -> Csp
bar x = foldl (foo x)
Run Code Online (Sandbox Code Playgroud)