Anagramatically Aehklls
I just wanted to play fun at someone I sent a text to, and I started by manually reversing individual words. This quickly turned out to be too tedious for me, however, so I launched a some_shell and didn’t remember how to do a reverse there. I looked around a bit but quickly gave up. Then I remembered I could just use stack to get a ghci shell, so I just issued
reverse "My sentence here"To reverse individual words, I modified that slightly to:
unwords . map reverse . wordsThere’s a schema here. Let’s create a small function:
let wordly wise = unwords . map wise . wordsOkay. Now to do it anagramatically:
import Data.List (sort)
let anagramatically = wordly sortNow I can do:
anagramatically "Hello World"to get:
"Hello Wdlor"One could further improve this to capitalise the first letter and otherwise ignore the case when sorting. One could always further improve things :-)
Another fun thing to do is build palindromes, just because we can:
import Control.Arrow ((&&&))
let palit = wordly (uncurry (++) . (id &&& reverse))For example, this sentence would look like this:
putStrLn $ palit "For example, this sentence would look like this:"
ForroF example,,elpmaxe thissiht sentenceecnetnes woulddluow lookkool likeekil this::sihtOn an unrelated note, I’m really looking forward to haskell eXchange next week…