在Ocaml的关联列表中移动列

时间:2019-02-10 05:03:57

标签: pattern-matching ocaml associative-array

我正在尝试在关联列表中移动一列。我也得到源列和目标。我的目标是在找到具有匹配列源的元素后,将其移至给定的目标列,并将所有其他元素滑向源曾经占据的位置。

我可以找到带有match表达式的匹配元素,但是我真的不知道一旦到达那里该怎么办。

let move_column (src:int) (dst:int) alist =
  let switcher src dst alist = match alist with
   |[] -> []
   |(row,col,data)::t -> if col = src switcher(*what now?*)

这是我要做的事的一个例子。

move_column 1 3 [(1,1,"a"); (1,2,"b"); (1,3,"c"); (1,4,"d")] should
result in (possibly a permutation of) [(1,1,"b"); (1,2,"c"); (1,3,"a"); 
(1,4,"d")]

0 个答案:

没有答案