Перемещение столбцов в ассоциативном списке в Ocaml - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь переместить столбец в ассоциативный список.Мне также дан исходный столбец и пункт назначения.Моя цель состоит в том, чтобы, найдя элемент с соответствующим источником столбца, переместить его в заданный столбец назначения и сдвинуть все остальные элементы к месту, которое когда-то занимал источник.

Я могу найти соответствующий элемент свыражение совпадения, но я действительно не знаю, что делать, когда доберусь туда.

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")]
...