Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.67 KB | None | 0 0
  1. let letterToInt c = int_of_char c -65;;
  2.  
  3. let cellname_to_coord cn =
  4.   let n = String.length (fst cn) and column = ref  0 in
  5.                            for k=0 to (n-1)
  6.                            do  (column := !column*26 + letterToInt (fst cn).[k])
  7.                            done;
  8.                            (snd cn -1, !column)
  9.      ;;
  10.  
  11. let intToLetter c =String.make 1 (char_of_int (c + 65));;
  12.  
  13. let rec decTovingtsixmal  = function
  14.   | n when n<26 -> [n]
  15.   |n -> (n mod 26)::(decTovingtsixmal (n/26) );;
  16.  
  17. let coord_to_cellname co =
  18.   let column_nbr = List.rev (decTovingtsixmal (snd co)) in
  19.   (String.concat "" (List.map intToLetter column_nbr), fst co +1);;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement