Re: procedures calling procedure calling procedure...
- Posted by francis at gmx.co.uk Oct 14, 2002
- 369 views
Cunning? Well, you can define routine ID constants/variables at the top of the file, reference them in the middle and set them at the end. Even in C, it is ordinary programming practice to "#define function(parameters);" if it is called before it is instantiated. It would be slightly more convenient to be able to call *before* it is defined, ut we are talking about an interpreted language! In terms of coding, I think is is not too much work around at all. >Sorry but there isn't. RDS believes this is the best way to do it. I strongly disagree with RDS on >that issue. > >The RDS philosophy seems to be that good programming practice is to only refer to things that have >already been "seen" by the one-pass interpreter. Thus you cannot refer to any identifier that is >defined lower down in the file. So yes, the physical layout of indentifier definitions in a source >code file has been deemed to be vitally significant by RDS. > >This means that you as a programmer have to invent cunning ways to get around this limitation in the >language (as implemented by RDS). Of course, RDS has also recognised that there > are legitimate >reasons for coders to do this, so Euphoria has been provided with routine_id(), > call_proc/func() >routines. > >My suspicions are that it is now too hard for RDS to change the way the interpreter works to allow >for forward referencing, so we are stuck with this limitation for now. > >Whenever I get a spare 12-months, I'll write a new implementation of the interpreter > >------------- >Derek. > >15/10/2002 7:21:59 AM, rubis at fem.unicamp.br wrote: > >> >>Hi people ! >> >>How do I call a procedure that is after the call ? >> >>for example: >> >>--begin >>procedure a() >>?1 >>end procedure >> >>procedure b() >>a() >>c() >>end procedure >> >>procedure c() >>?3 >>end procedure >> >>--end >> >>I'm doing this using call_proc(c(), {}), but something tells me that there >>is a more easy or intellignet way to do this... >> >>thanks >>Rubens >> >> >--------- >Cheers, >Derek Parnell >ICQ# 7647806 > > > >