Tomasz Zielonka wrote:
On Sun, Feb 05, 2006 at 01:14:42PM -0000, Brian Hulley wrote:
How about:

     f x y
     . g x
     $ z

then you only need to add the line

     . h x y

But then you have a problem when you when you want to add something
at the beginning ;-) With right-assoc $ adding at both ends is OK.

This is similar to how people often format lists:

    a =
         [ first
         , second
         , third
         ]

I am one of those people, and I am slightly annoyed with I have to
add something at the beginning of the list. I even went so far that
when I had a list of lists, which were concatenated, I've put an
empty list at front:

   concat $
       [ []
       , [...]
       , [...]
       .
       .
       .
       ]

Just in case you are interested, in the "preprocessor" I'm writing, I would write these examples as:

       (.) #>
                  f x y
                  g x
                  h x y
       $ z

and
        a = #[
                   first
                   second
                   third

where exp #> {e0,e1,...} is sugar for let a = exp in a e0 (a e1 (a ... ) ...)) and #[ {e0, e1, ... } is sugar for [e0, e1, ...] (exp #> block and exp #< block are the right and left associative versions respectively and the special # sugar allows a layout block to be started if it occurs at the end of a line)

This allows me to avoid having to type lots of syntax eg repeating the "." all the time and focus on the semantics...

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

Reply via email to