Re: [stack] disallowing recursive definitions
Don Groves <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
On Mar 3, 2008, at 19:16 , John Nowak wrote: > > On Mar 3, 2008, at 3:50 PM, William Tanksley, Jr wrote: > >>> With a concatenative tail-call you're passing the stack as an >>> argument. In other words, you pass the entire state of the program! >> >> Yes, this is how concatenative languages are modeled. That's how >> *every* step in their execution is modeled, not just tail-calls or >> calls. If this were a problem, concatenative languages would be >> universally problematic, not merely problematic in the presence of >> tail-calls. > > Indeed, and I'd argue that this is exactly why many people find stack- > based languages universally problematic. They're taking issue with all > of this state passing, although they phrase it like "I can't keep the > stack in my head". Of course this isn't a problem in practice, > particularly when you have type inference involved and can get a quick > summary of what a function cares about, but it does seem to be the > source of many negative first impressions. Also, there has never been a requirement to "keep it all in one's head," that's what comments are for. Commenting with stack diagrams is very useful! I know "real programmers" don't comment but in these languages, they should. -- don > - John > > > > Yahoo! Groups Links > > > >