Writing a caeser cipher is fairly trivial, but fun to do if you're learning the language. I wrote this to get to grips with Haskell's GetOpt, as well as to see how nice I could make the stream processing. You might find it handy if you're just starting haskell, and the code is fairly clean (though quite simple).
Download CaeserFile.tar.gz.
Once compiled (use make & ghc), run the binary with --help as the argument to get help from the helpful help:
$ ./cf --help Usage: cf [OPTIONS...] -v --version show version number -h --help Output help text -s NUM --shift=NUM The Caeser cipher shift -i FILE --input=FILE File to read message from (defaults to stdin) -o FILE --output=FILE File to write output to (defaults to stdout)