Paul wrote:
> But for ss I got this:
> 5!:5<'ss' (225 0 0 0 32 0 0 0 8 0 ...
This isn't a bug. Or, it could be construed as a bug, but not the one you're
thinking of.
The result of 5!:5<'ss' is indeed the linear representation of a verb. What
you're seeing is essentially the same behavior as:
13 : ' ''blahblah'' foo y '
'blahblah' foo ]
or,
13 : ' (+/~i.10) * y '
(10 10$0 1 2 3 4 5 6 7 8 9 1 ....
or, more germane:
13 : ' (a. i. 3!:1 ''stuff'';''more'';98;a:) ] y'
225 0 0 0 32 0 0 0 4 0 0 0 1 0 ..
That is, all those numbers are the lineral representation of the NOUN within
your verb.
The bug, if you want to call it that, is that 13 : produced a functional
verb, even though s: is not functional. That is, given the same inputs s:
can produce different outputs; it's hidden input is the symbol table.
But I think if you're using 13 : you're specifically requesting a functional
verb; after all, that's what tacit means. So I don't think ignoring the
non-functional-ness of s: is any more a bug than ignoring the
non-functional-ness of GLOBAL in:
GLOBAL =: 42
f =: 13 : 'GLOBAL * y'
f 3
126
GLOBAL =: 100
f 3
126
f
42 * ]
Anyway, to answer your implicit question, ss can be written tacitly thus:
ss =: ([: 3!:1 0: s: 10"_) 1!:2 <
-Dan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm