let () = let rec charlist_of_string str n i = if i = n then [] else str.[i] :: charlist_of_string str n (i+1) in let rec convert lst = match lst with | [] -> "" | h :: t -> if h = Char.lowercase_ascii h then (Char.escaped (Char.uppercase_ascii h)) ^ convert t else (Char.escaped (Char.lowercase_ascii h)) ^ convert t in Scanf.scanf "%s\n" @@ fun s -> let lst = charlist_of_string s (String.length s) 0 in Printf.printf "%s\n" (convert lst)