Re: [stack] comments - 1 (inlining)
stevan apter — 2000-07-06 10:54:08
----- Original Message -----
From: <phimvt@...>
To: <concatenative@egroups.com>
Sent: Thursday, July 06, 2000 12:51 AM
Subject: [stack] comments - 1
> 3. Inlining
> There was some good discussion on the cost and benefits of inlining.
> In the prototype I was not concerned with efficiency. But a future Joy
> might well have two kinds of definitions:
> square == dup * ;
> cube =inline= dup dup * * ;
> or something like that. Any thoughts?
hi manfred - welcome back.
in conk, i use 'set' for this purpose:
3 "cube" [dup dup * *] set
`cube
i
27
set takes a string and a list and returns a bare function, denoted by the
leading backtick.
if cube existed at definition-time, then
3 cube [dup dup * *] set
would cause it to consume the value 3 on the stack, and the definition
would fail.
'set' is also useful to turn system variables on and off:
"T" 1 set (* turn trace on *)
`T
1 2 3 4 + * +
`T
`T 1
`T 1 2
`T 1 2 3
`T 1 2 3 4
`T 1 2 7
`T 1 14
`T 15