On Friday 27 June 2008 22:21:05 Slava Pestov wrote:
> So, we could have a syntax like the following:
>
> TUPLE: color { "red" integer 0 } { "green" integer 0 } { "blue" integer 0 }
> ;
>
> Each slot specifier would either be a string, a two element array (name,
> default value) or a three element array (name, class, default value).
I don't mind that syntax, except for the double quotes. I'd be ok with:
TUPLE: color { red integer 0 } { green integer 0 } { blue integer 0 } ;
You can provide either a type or an initial value. There is ambiguity if you
provide a type as an initial value. For this case, you could have some rule
on ordering.
Let's put that syntax side by side with the KLF syntax:
TUPLE: color { red integer 0 } { green integer 0 } { blue integer 0 } ;
TUPLE: color red/integer=0 green/integer=0 blue/integer=0 ;
KLF sure is shorter. But, and they might shoot me for this, I kinda like the
first version visually. I could get used to the second version. Maybe I've
been abducted and brainwashed by K and J aliens.
The per slot key overhead of the first version is 8. KLF is 2.
Remember that '{' is a shifted character so it has a key count of 2.
Since we're already in the deep end of the character overloading pool, you
might as well consider overloading '[' here. The per slot key overhead would
drop to 6 if you used them here:
TUPLE: color [ red integer 0 ] [ green integer 0 ] [ blue integer 0 ] ;
Ed
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk