
minh thu wrote:
Something I wonder from time to time if it would be a good thing or not is to allow a `f g` b to mean f g a b
This comes up from time to time, though it is often met with stern disapproval because it can easily lead to loss of clarity. There is a valid alternative, though it's not quite as pretty: ($a) (f g...) b c... == f g... a b c... With even less prettiness, this can also be generalized for other numbers of prefix arguments: ( ($a) f) b c... == f a b c... ( ($b) $($a) f) c d... == f a b c d... (($c) $($b) $($a) f) d e... == f a b c d e... And if anyone wanted to use this sort of pattern frequently, I'm sure there's some decent way to clean it up ala Matt Hellige's pointless trick[1] or ala Oleg's polyvariadic trick[2]. [1] http://matt.immute.net/content/pointless-fun [2] http://okmij.org/ftp/Haskell/polyvariadic.html -- Live well, ~wren