let morse = function | 'a' -> ".- " | 'b' -> "-... " | 'c' -> "-.-. " | 'd' -> "-.. " | 'e' -> ". " | 'f' -> "..-. " | 'g' -> "--. " | 'h' -> ".... " | 'i' -> ".. " | 'j' -> ".--- " | 'k' -> "-.- " | 'l' -> ".-.. " | 'm' -> "-- " | 'n' -> "-. " | 'o' -> "--- " | 'p' -> ".--. " | 'q' -> "--.- " | 'r' -> ".-. " | 's' -> "... " | 't' -> "- " | 'u' -> "..- " | 'v' -> "...- " | 'w' -> ".-- " | 'x' -> "-..- " | 'y' -> "-.-- " | 'z' -> "--.. " | '0' -> "----- " | '1' -> ".---- " | '2' -> "..--- " | '3' -> "...-- " | '4' -> "....- " | '5' -> "..... " | '6' -> "-.... " | '7' -> "--... " | '8' -> "---.. " | '9' -> "----. " | '.' -> ".-.-.- " | '?' -> "..--.. " | ',' -> "--..-- " | ':' -> "---... " | ';' -> "-.-.- " | '\\' -> ".----. " | '-' -> "-....- " | '/' -> "-..-. " | '(' -> "-.--.- " | ')' -> "-.--.- " | '"' -> ".-..-. " | '\'' -> ".----. " | '=' -> "-...- " | '+' -> ".-.-. " | '@' -> ".-- .-. " | ' ' -> "/ " (* uses '/' to seperate words. *) | _ -> "" let _ = let input = read_line () in String.iter (fun c -> print_string (morse c)) (String.lowercase input); print_newline ()