(* 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