create ... does$>$ ...

The word does> is used to specify a run-time action for the child words of a defining word. We can make our own variant of constant and test it.
: make-con create , does> @ ;  ok<#,ram>
53 make-con prime  ok<#,ram>
At run time for the defining word make-con, create sets up the new dictionary entry with the next text in the input stream (prime), the word , (comma) compiles TOS (53 in this example) into the memory-space of the new child word and does> stores the following words up to the terminating semicolon (only @ in this case), such that they will be executed at the run time of the child word defined by make-con. Thus, when prime is executed, the address of the first entry in its data-space is put onto the stack and the word @ executed.
prime . 53  ok<#,ram>
Although only one word is stored as the run time code for prime in this example, it could be arbitrarily complex.



Peter Jacobs 2013-06-12