Skip to content

Instantly share code, notes, and snippets.

@alarsyo
Last active March 23, 2016 19:20
Show Gist options
  • Save alarsyo/9f5b3952b208d6e9c17b to your computer and use it in GitHub Desktop.
Save alarsyo/9f5b3952b208d6e9c17b to your computer and use it in GitHub Desktop.
TP03 3.2
(* ---3.2 char list list...--- *)
let rec sentence_to_single_list morse_sentence = match morse_sentence with
|[] -> []
|[]::sentence -> '/' :: sentence_to_single_list sentence (* on ajoute un '/' si le mot est fini *)
|([]::word)::sentence -> ' ' :: sentence_to_single_list (word::sentence) (* on ajoute un espace ' ' si la lettre est finie *)
|((e::letter)::word)::sentence -> e :: (sentence_to_single_list ((letter::word)::sentence)) ;; (* on extrait un caractère d'une lettre en morse pour le mettre dans notre liste *)
(* val sentence_to_single_list : char list list list -> char list = <fun> *)
sentence_to_single_list (sentence_to_morse [['y'; 'o']; ['d'; 'a'; 'w'; 'g']]) ;;
(*
- : char list = ['-'; '.'; '-'; '-'; ' '; '-'; '-'; '-'; ' '; '/'; '-'; '.'; '.'; ' '; '.'; '-'; ' '; '.'; '-'; '-'; ' '; '-'; '-'; '.'; ' '; '/']
*)
sentence_to_single_list [[['-'; '.'; '-'; '-']; ['-'; '-'; '-']]; [['-'; '.'; '.']; ['.'; '-']; ['.'; '-'; '-']; ['-'; '-'; '.']]] ;;
(*
- : char list = ['-'; '.'; '-'; '-'; ' '; '-'; '-'; '-'; ' '; '/'; '-'; '.'; '.'; ' '; '.'; '-'; ' '; '.'; '-'; '-'; ' '; '-'; '-'; '.'; ' '; '/']
*)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment