
On Sun, Feb 05, 2006 at 04:36:44PM -0000, Brian Hulley wrote:
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)
Well... I care about change locality and the like, but I'm not sure I would use such syntax (as a means of communication between programmers). Perhaps that's because I am not used to it and it looks alien. But it's rather because I still put readability first.
This allows me to avoid having to type lots of syntax eg repeating the "." all the time and focus on the semantics...
At some point you (the programmer) are going to do the work of a compression program ;-) There is some limit to terseness. Haskell's syntax is quite concise, but it could be even more. Why it isn't? Because it would cease to resemble the mathematical notation, it would cease to be readable. Well, even Haskell could be more readable, but there's also some point where further investment in concise lexical syntax doesn't pay off. I am not sure that's the situation here, but... think about it. PS. One wonders why you don't take the lisp way with a good lisp editor? Aren't you designing lisp without parentheses? ;-) Best regards Tomasz -- I am searching for programmers who are good at least in (Haskell || ML) && (Linux || FreeBSD || math) for work in Warsaw, Poland