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

Reply via email to