我正在尝试在关联列表中移动一列。我也得到源列和目标。我的目标是在找到具有匹配列源的元素后,将其移至给定的目标列,并将所有其他元素滑向源曾经占据的位置。
我可以找到带有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")]