Brandon S. Allbery KF8NH wrote:
On Mar 23, 2010, at 13:39 , Ertugrul Soeylemez wrote:
layout-style syntactic sugar for function application.
Here is an example of what it might look like:
function $$ anArgument
sin (x^2)
anotherArgument
f $ x + 3
Doesn't layout already do this?
function arg1
arg2
arg3
The layout rule is only triggered by a limited set of keywords (like do,
where, let, ...), and Ertugrul's proposal is to add a keyword for
function applicaton to this set.
I like this idea, because it would enable non-monadic embedded DSLs to
use layout.
For example, consider setting properties in wxHaskell:
layoutSet myButton $$
text := "Ok"
on action := doSomething
instead of
set myButton
[ text := "Ok"
, on action := doSomething
]
Of course, this would need some type hackery à la PrintF to make set
accept multiple arguments, and the proliferation of such type hackery
may seem unfortunate. On the other hand, the hackery could possibly be
encapsulated in a combinator like
polyvariadic :: Poly a b c => ([a] -> b) -> c
so that layoutSet can be implemented as
layoutSet widget = polyvariadic (set widget).
Tillmann
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe