Torsten Anders wrote:

On 14.03.2006, at 17:02, Andreas Franke wrote:

Torsten Anders wrote:

Still, what is gained if you are allowed to replace _/*SomeThing*/ by _SomeThing, in case the latter is equivalent to _?

Four characters. If you operate on an 80-chars-per-line style for source code, that's significant :-)


It is probably rather unwise as a non-computer scientist to stick your neck out and argue here.

I would always hesitate before extending the core of Oz. Is it really worth to extend the Oz syntax to save these four characters (in case _X is equivalent to _) or even to introduce some slight semantical variant (in case _X is a special form of X which does not trigger certain warnings)?


To give a counter-example: it would save me much more typing, if it would be legal to replace the common

    proc {Square X Y} Y=X*X end

by something like

    p {Square X} Y=X*X e

Saves 5 characters ;-) And reducing keywords like these would really reduce my code, because they pop up all over the place. Just kidding...

I know you are just kidding, but I want to point out that is not just about the 4 characteres that Andreas wants to avoid. It's also about readibility.

_Something looks more readable than _/*Something*/

        proc {Foo Id _/*Name*/ _/*Address*/} ... end

is less nicer than

        proc {Foo Id _Name _Address} ... end

on the contrary

        proc {Foo Id _ _} ... end

is shorter, but what are those two variables after Id?
and what about

        p {Foo Id _ _} ... e

:D
cheers
Boriss



On the other hand, I actually very much like the idea of saving the amounts of typing. But if it requires to extend the core of Oz itself, then I would opt for the big change, i.e. for introducing something like Lisp macros instead. With such a means, everyone of us can then easily tailor the Oz syntax according needs.

Yes, I know that Denys gave that a go and it was turned down in the end. I also know that macros are a two edged sword: no first-class values, makes debugging harder etc.

Nevertheless, what Denys did is still there (http://www.mozart-oz.org/documentation/macro/node1.html) and even still works in 1.3.1. Something like this would really save me tremendous amounts of typing at times. I am not using it, though, because I expect this functionality be broken at any time.

Wouldn't it be worth discussing macros for Oz again?

Best,
Torsten


--
Torsten Anders
Sonic Arts Research Centre
Queen's University Belfast (UK)
www.torsten-anders.de


_________________________________________________________________________________ mozart-users mailing list [email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users


_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to