> This whole idea of verbs returning any part of speech seems like a
> disaster. Perhaps after reflection it will be workable, but I would

"With great power comes great responsibility."

> It is pretty basic that every name must have a part of speech; otherwise
> how can you parse? And if verbs are unrestricted, if I see
>
> q =: V1 V2 V3
>
> what part of speech can I assign to q?

If V1, V2 and V3 are verbs then q should be a verb.  Am I missing something?
Do you have a specific example that shows the issue?

> I think it's a bug and should be fixed.

The question is: Is it a bug or is it a feature?

"Any sufficiently advanced bug is indistinguishable from a feature."

So far I like it.  Apparently it was forbidden by the interpreter (we know
better now)
but not by the dictionary.


On Sat, Jan 26, 2013 at 5:25 PM, Henry Rich <[email protected]> wrote:

> This whole idea of verbs returning any part of speech seems like a
> disaster.  Perhaps after reflection it will be workable, but I would start
> by assuming that Ken and Roger weren't just thoughtless in restricting the
> range of verbs.
>
> It is pretty basic that every name must have a part of speech; otherwise
> how can you parse?  And if verbs are unrestricted, if I see
>
> q =: V1 V2 V3
>
> what part of speech can I assign to q?
>
> I think it's a bug and should be fixed.
>
> I do wish I had the old tacit language back, though.
>
> Henry Rich
>
>
>
> On 1/26/2013 5:03 PM, Marshall Lochbaum wrote:
>
>> First, let me say: wow. Using a (or the more general dont from Dan's
>> post, which I will use and call d), we can PUT ANY J OBJECT IN A BOX.
>> This means it can be passed around as a noun and invoked in an explicit
>> context.
>>
>>     d =. (]^:(1:`(<'@.')) nest2Box)@:gTxt
>>     ]infix =: <@d '/'
>> ┌─┐
>> │/│
>> └─┘
>>     + (>infix) 3 4 5
>> 12
>>
>> As long as we are inside the same tacit verb where d was called, its
>> output will be treated as a noun, despite the fact that it isn't:
>>
>>     d@> '@&'
>> @
>>     ([: $ d@>) '@&'
>> 2
>>     ([: |. d@>) '@&'
>> &
>>     ([: (<"0) 3 3 $ d@>) '@&'
>> ┌─┬─┬─┐
>> │@│&│@│
>> ├─┼─┼─┤
>> │&│@│&│
>> ├─┼─┼─┤
>> │@│&│@│
>> └─┴─┴─┘
>>
>> Note that this clearly shows that the output of d@> '@$' is still a
>> list, even though it's displayed and treated as a single conjunction.
>> Once we exit the verb into an explicit context, the parser figures out
>> that it is dealing with a non-noun and starts treating it like one.
>>
>>     use =: 3 : 'y 2 3 4'
>>     use@:d '+/'
>> 9
>>
>> I don't think it's possible to use the result of d in a tacit context,
>> but I could be wrong. Of course explicit helper verbs that take boxed
>> things and apply them to other boxed things could be used, and they
>> could even be made polymorphic using 3!:0 .
>>
>> This is, of course, a bug. I can't find anywhere in the dictionary where
>> it says a verb must return a noun, but it's assumed throughout, and
>> explicit verbs are specifically made to throw a domain error rather than
>> return something that's not a noun. However, it's really cool and quite
>> possible useful--passing arbitrary J objects through verbs without the
>> overhead of gerunds or the hassle of names is very cool.
>>
>> Marshall
>>
>> On Sat, Jan 26, 2013 at 07:58:49AM -0500, Raul Miller wrote:
>>
>>> On Sat, Jan 26, 2013 at 1:38 AM, Jose Mario Quintana
>>> <[email protected]**> wrote:
>>>
>>>> I guess this is the final proof that given J and a sufficiently
>>>>> POWERful
>>>>> AGENDA, you can DO anything!
>>>>>
>>>>
>>>>     agenda=. ]^:(1:`(<'@.'))
>>>>     (atop=. (<'@') agenda 0)
>>>>
>>>
>>> Or:
>>>
>>>     a=: ]^:(1:`(<'@.'))&0@<
>>>     atop=: a '@'
>>>     type 'a'
>>> +----+
>>> |verb|
>>> +----+
>>>     type 'atop'
>>> +-----------+
>>> |conjunction|
>>> +-----------+
>>>
>>> The pun is different, of course.
>>>
>>> Of course, the results are not necessarily consistent:
>>>
>>>     a&.> '@&'
>>> +-+-+
>>> |@|&|
>>> +-+-+
>>>     a&> '@&'
>>> @
>>>
>>> But I suppose that since we already have inconsistent behavior for
>>> displaying complex objects, maybe that's ok?
>>>
>>> --
>>> Raul
>>> ------------------------------**------------------------------**
>>> ----------
>>> For information about J forums see 
>>> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>
>>>
>> ------------------------------**------------------------------**
>> ----------
>> For information about J forums see 
>> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>
>>
>>  ------------------------------**------------------------------**
> ----------
> For information about J forums see 
> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to