[MLton] handling a variable number of arguments in SML
Vesa Karvonen
vesa.karvonen@cs.helsinki.fi
Wed, 24 Aug 2005 05:58:33 +0300
Quoting Stephen Weeks <sweeks@sweeks.com>:
[snip snip]
> val () = p (fold (0, op +) (a 1) (a 2) (a 3) $)
> val () = p (fold (0, op +) (a 1 & a 2 & a 3))
> I'm unsure of what advantage, if any, the continuation approach has
> over the composition-of-arguments approach.
I just remembered the specific reason why I liked the notation using
lists better than the notation using composition. [] provides a natural
way of referring to the defaults (empty set of updates to the defaults).
The function application/CPS technique also allows you to express the
empty set of updates naturally, but the composition technique needs an
extra symbol.
CPS: f $ f (a) $ f (a) (b) $
o/&: f id f (a) f (a & b)
[]: f [] f [a] f [a, b]
I find the list notation the nicest. Too bad it has a performance
disadvantage.
-Vesa Karvonen