Further to Raul’s point, if you want to build a verb train to assign for later,
I suggest you build within parentheses ( ).
This will highlight deficient verb train construction before you assign, but
you can then assign what is inside the parentheses.
So repeating your example but with parentheses ...
(+/"1'abc'=/)’abcbdefbbcbaa’ NB. The ( ) highlights that you need
to bring the parameter ] inside
|domain error
| ( +/"1'abc'=/)’abcbdefbbcbaa'
(+/"1'abc'=/])’abcbdefbbcbaa’ NB. But still a problem, as this
produces a hook (2 verbs) being: (+/“1) and (‘abc’=/])
|domain error
| (+/"1'abc'=/])’abcbdefbbcbaa'
So this is fixed using either of Bob’s suggestions, the cap makes the hook a
fork so that ([: g h) y executes as g h y (what you want)
([:+/"1'abc'=/])’abcbdefbbcbaa’ NB. Can fix by using [:
3 5 2
(+/"1@:('abc'=/]))’abcbdefbbcbaa’ NB. or @: to apply the 2 functions in
the hook to operate as f g y
3 5 2
Now you can assign what is inside the parentheses to save your verb train.
HTH, Rob
> On 14 Sep 2016, at 10:11 AM, Raul Miller <[email protected]> wrote:
>
> You might try these:
>
> require'trace'
> trace'+/"1''abc''=/''abcbdefbbcbaa'''
> trace'(+/"1''abc''=/])''abcbdefbbcbaa'''
>
> This does not show everything, but does take you through the parsing
> process up to where the error happens in the second statement.
>
> (Also, beware of email agents which change quote marks - those should all
> be ascii single quotes, even when two or three of them occur in sequence,
> and not some other unicode quotes...)
>
> To see beyond that point, if you have jqt running (and all the addons
> installed), you might try this:
>
> require'debug/dissect'
> dissect '+/"1''abc''=/''abcbdefbbcbaa'''
> dissect'(+/"1''abc''=/])''abcbdefbbcbaa'''
>
> This will try to show you the execution process and also the specific verb
> which is throwing the error along with its arguments.
>
> I hope this helps.
>
> --
> Raul
>
>
>
> On Tue, Sep 13, 2016 at 7:48 PM, Skip Cave <[email protected]> wrote:
>
>> Bob,
>>
>> Drat! I was hoping I could just take the expression:
>> +/"1'abc'=/'abcbdefbbcbaa'
>> Which works fine, and just turn it into a tacit verb definition without
>> fiddling with it:
>> ts1 =. +/"1'abc'=/]
>> Or better yet:
>> ts1 =. +/"1'abc'=/
>> Apparently, when I removed the noun argument, the phrase turned into a
>> 'hook'.
>>
>> I have no idea why this happened. Seems like you should be able to get a
>> verb phrase working with an argument, and then remove the noun and add an
>> assignment to make a tacit verb. Apparently it doesn't work that way
>> though.
>>
>> Skip
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm