Re: [stack] What does "concatenative" actually mean?

spir <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <20090307093216.11e28486@o>
Le Fri, 6 Mar 2009 18:24:13 -0500,
John Nowak <[email protected]> s'exprima ainsi:

> Your point about naming it and being able to refer to it is confused.  
> Even if you define 'square', you still need to use quotation to form a  
> new function that pushes the 'square' onto the stack. It is not the  
> same as giving the name for a function in Scheme and getting that  
> function back as a result. You're explicitly creating a new function.

Isn't this issue implementation choice? What I mean is at the conceptual/programmer level.

* There must be a way to distinguish a reference to a word from running it (think eg at python "func" vs "func()" or Io "getSlot("meth")" vs "meth"). Why is it wrong to consider that "[square]" vs "square" plays this role?

* As I see it, the implementor has numerous options:
	1. Create a new func as explained above by John.
	2. Literally replace in code (~ macro) before processing (then we get an 		anonymous func again).
		[square] map ==> [dup *] map
	3. Store a reference (name, pointer, id) on stack when "[square]" is parsed.
	4. Store "[square]" as data on stack.
	5. Store square's definition on stack.
All would do the job?

Denis
------
la vita e estrany
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.