Target values and recursion depth

Let the developers know what you think of the software and what can be done to either improve the CFDG language or the Context Free program.

Moderators: MtnViewJohn, chris, mtnviewmark

User avatar
lagroue
Posts: 114
Joined: Wed Jul 06, 2005 11:33 pm
Location: Paris, France
Contact:

Post by lagroue »

MtnViewJohn wrote:
And there's an awsesome feature : we could even "rebounce"... Or did I miss something ?
This is exactly what I meant.
Houlala, this is not CF at all ! at all at all at all ! I wonder what Mark will say about that !

User avatar
MtnViewJohn
Site Admin
Posts: 882
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Post by MtnViewJohn »

I know! I have veered off into L-systems or something. Mark and Chris are probably shaking their heads. We can argue that recursion limiting is a convenient shortcut that eliminates tedium and improves clarity. But rebouncing at the recursion limit is all about enabling new, non-CF, stuff. But it would be so cool.

User avatar
lagroue
Posts: 114
Joined: Wed Jul 06, 2005 11:33 pm
Location: Paris, France
Contact:

Post by lagroue »

MtnViewJohn wrote:I know! I have veered off into L-systems or something. Mark and Chris are probably shaking their heads. We can argue that recursion limiting is a convenient shortcut that eliminates tedium and improves clarity. But rebouncing at the recursion limit is all about enabling new, non-CF, stuff. But it would be so cool.
Now I see why your two friends don't say anything - But I'm sure they hate me less as they hate you.

Well - we have managed to skew things so that they look clear and clean under the CF light, until... rebouncing. The programming language argument can still be used, but you're pushing the limits, ho you nasty John !
MtnViewJohn wrote:L-systems or something.
Nasty lazy John !
Well, I guess I can live with that.

I wish you courage for the implementation.


Btw, a last comment on syntax, I was about to forget.

Code: Select all

A { n 10 n < 1 }
would mean "trigger A if parent rule's n is < 1, and set n of A to 10". This is odd having the same character "n" used for two different n : the one for A, the one for the parent rule.

Maybe

Code: Select all

A { n 10 parent.n < 1 }
would be clearer, although ugly and verbose.

Some options I prefer :

Code: Select all

n < 1 ? A { n 10 }
would be C like

Code: Select all

A { n 10 } if n < 1 
would be perl-like

Code: Select all

A { n 10 } unless n > 0 
would be perl-like

Code: Select all

n < 1 ? A { n 10 } : B { }
is C-like again, and nasty-lazy-speaking, going towards a turing-complete machine.

Post Reply