(* OPG 14.2 *)
(* bemaerk at denne funktion *IKKE* kan testes i Emacs *)
local
fun readAndReverse' [] = "" (* hvis argument er den tomme liste har input kun vaeret blanktegn *)
(* saml string list til en string *)
| readAndReverse' input = let val reversed = String.concat (
List.map (
(* tilfoej mellemrum efter hvert ord *)
(fn x => x ^ " ") o
(* saml char listerne igen *)
implode o
(* vend char listerne om *)
List.rev o
(* lav string til char list *)
explode)
input) in
(* fjern det sidste mellemrum *)
String.substring(reversed, 0, String.size(reversed) -1)
end
in
(* anvend med TextIO.stdIn som argument for at laese fra konsol *)
fun readAndReverse is = (* string -> string list, del ved blanktegn *)
readAndReverse' (String.tokens Char.isSpace
(TextIO.inputLine(is)))
end