[mercury-users] Mercury programmer required ;-)
Juergen Stuber
juergen at mpi-sb.mpg.de
Thu Sep 24 20:14:18 AEST 1998
I couldn't resist:
:- module rot13.
:- interface.
:- import_module io.
:- pred main(io__state::di, io__state::uo) is det.
:- implementation.
:- import_module char, int, require.
:- pred rot13( char::in, char::out) is det.
main -->
io__read_char( Result ),
( { Result = ok( Char ) } ->
{ rot13( Char, Rot13Char ) },
io__write_char( Rot13Char ),
main
; { Result = eof } ->
{ true }
;
{ error( "read failed" ) }
).
rot13( Char, Rot13Char ) :-
char__to_int( Char, Code ),
( 0'A =< Code, Code =< 0'Z ->
Rot13Code = (Code - 0'A + 13) mod 26 + 0'A
; 0'a =< Code, Code =< 0'z ->
Rot13Code = (Code - 0'a + 13) mod 26 + 0'a
;
Rot13Code = Code
),
( char__to_int( Ch, Rot13Code ) ->
Rot13Char = Ch
;
error("too offensive, censored")
).
Jürgen
--
Jürgen Stuber <juergen at mpi-sb.mpg.de>
http://www.mpi-sb.mpg.de/~juergen/
More information about the users
mailing list