Hi Andrew,

I haven't read your whole message but if shortness is your goal, here are some ideas:

Andrew Savige wrote:
rtoa c = 10^(205558`mod`(ord c)`mod`7)`mod`9995

I'm not suggesting that magic formulae are useful outside of golf and
this second rtoa function, though shorter, is much less clear. I might
add that this particular magic formula appears to be less useful in
Haskell golf than the other languages because `mod` is five times
longer than the % operator of the other languages. :)

Why not rename mod like so?

(%)=mod
rtoa c=10^(205558%ord c%7)%9995

Alternatively, you could write the rtoa function using an approach
taken from the original HaskellWiki solution:

rtoa = fromJust . flip lookup (zip "IVXLCDM" [1,5,10,50,100,500,1000])

You can write this as:

Just rtoa=flip lookup (zip "IVXLCDM" [1,5,10,50,100,500,1000])

Which is another few characters shorter. :-)

HTH,

Martijn.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to