List OCaml-Parmap序列的串联

List OCaml-Parmap序列的串联,list,concatenation,ocaml,List,Concatenation,Ocaml,是否有任何方法可以连接类似于OCaml中内置列表的Parmap序列 具体来说,我想做一些如下工作: let yolo = [1;2;3] let swag = [4;5;6] let magic1 = Parmap.L yolo let magic2 = Parmap.L swag //below does not work let result = magic1@magic2 我想你指的是 据我所知,这样的操作并不能真正从并行化中获益,因为您仍然只能一次遍历链表中的一个元素。您的应用程序

是否有任何方法可以连接类似于OCaml中内置列表的Parmap序列

具体来说,我想做一些如下工作:

let yolo = [1;2;3]
let swag = [4;5;6]

let magic1 = Parmap.L yolo
let magic2 = Parmap.L swag

//below does not work
let result = magic1@magic2

我想你指的是

据我所知,这样的操作并不能真正从并行化中获益,因为您仍然只能一次遍历链表中的一个元素。您的应用程序会阻止您执行以下操作吗

让yolo=[1;2;3]
让swag=[4;5;6]
让parseq=Parmap.L(yolo@swag)

我想你指的是

据我所知,这样的操作并不能真正从并行化中获益,因为您仍然只能一次遍历链表中的一个元素。您的应用程序会阻止您执行以下操作吗

让yolo=[1;2;3]
让swag=[4;5;6]
让parseq=Parmap.L(yolo@swag)

您可以编写自己的连接实现(如果需要,甚至可以通过带有一些奇特名称的中缀运算符)。只需“解构”装箱的值,将其合并并将结果放回适当的“容器”:


您可以编写自己的连接实现(如有必要,甚至可以通过带有一些花哨名称的中缀运算符)。只需“解构”装箱的值,将其合并并将结果放回适当的“容器”:


不幸的是,我无法访问(至少在特定函数中)序列所用的原始列表。不幸的是,我无法访问(至少在特定函数中)序列所用的原始列表。
let (|@|) l1 l2 =
  match l1, l2 with
  | Parmap.L l1, Parmap.L l2 -> Parmap.L (l1 @ l2)
  | Parmap.A l1, Parmap.A l2 -> Parmap.A (Array.append l1 l2)
  | _, _ -> failwith "cannot concat oranges to apples"
;;

magic1 |@| magic2;;
- : int Parmap.sequence = Parmap.L [1; 2; 3; 4; 5; 6]