我有一个'a,and one'列表和一个类型的函数'a -> 'b-> 'c.我正在尝试使用我已经拥有的b将该函数应用于a-list的每个元素,并列出'c.在haskell中,我会做一些类似于zipWith(foobar) a-list (replicate (length a) b).
在OCaml中执行此操作的相同方法?
那么,在你不需要的例子中zipWith,你可以使用一个简单的map:
List.map (fun a -> f a b) a_list
Run Code Online (Sandbox Code Playgroud)
这比List.map2(相当于zipWith)更高效,因为OCaml不像Haskell那样处理列表,因此仅仅为了迭代而构造一个虚拟列表并不值得.
"List.map2"相当于Haskell的"zipWith"
val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
Run Code Online (Sandbox Code Playgroud)