Re trying my own examples—
I’m not too proud to flaunt my ignorance:

foo=:[x] ".@'name' y
|domain error
|   foo=:[x]    ".@'name'y

I  long ago choose (probably foolishly) to not spend a lot of time trying to 
understand tacit J. My rationale was that I would be unlikely to recover the 
cycles lost to the idle loop while I was studying to improve my j code. You 
know the old wisdom: 
Q: When should you optimize your code?
A: Not yet. 

Yet, now that I have been retired for a few years, I have the curiosity to try 
again. Thanks to JforC, I am learning that [ and ] appear often in tacit 
expressions, but x not so much. I expect that with a few more readings of 
Forks, Hooks, and Compound Adverbs I’ll see how dumb my confusion was. 

Your examples should help; thanks Raul!

> On Aug 24, 2018, at 10:18 AM, Raul Miller <rauldmil...@gmail.com> wrote:
> 
> Sort of?
> 
> It's an optional left argument that would be part of the larger J
> expression if it was present?
> 
> (That phrase was intended to show how it's used...)
> 
> Stil, we should have more havbits of trying things out.
> 
> With that in mind:
> 
>   example=: p:i.3
>   9 */@(".@'example') 8
> 30
>  */@(".@'example') 8
> 30
>   */@(".@'example')
> */@(".@example)
> 
> It's better though, when you try your own examples.
> 
> Thanks,
> 
> -- 
> Raul
> 
> On Fri, Aug 24, 2018 at 9:27 AM 'Jim Russell' via Programming
> <programm...@jsoftware.com> wrote:
>> 
>> Is it safe to understand that “[x]” indicates an optional left argument, and 
>> is not part of a the J expression?
>> 
>>> On Aug 24, 2018, at 9:19 AM, Raul Miller <rauldmil...@gmail.com> wrote:
>>> 
>>> Also, in this example, ‘name’ was meant to represent a pronoun.
>>> 
>>> Thanks,
>>> 
>>> —
>>> Raul
>>> 
>>>> On Friday, August 24, 2018, Henry Rich <henryhr...@gmail.com> wrote:
>>>> 
>>>> ".@'name' is a verb. In
>>>> 
>>>> [x] ".@'name' y
>>>> 
>>>> y (and x if given) are ignored, and the result is the value of (name) when
>>>> the verb is executed.
>>>> 
>>>> This is the same as it used to be, but is now faster.
>>>> 
>>>> Henry Rich
>>>> 
>>>>> On 8/23/2018 10:22 PM, Brian Schott wrote:
>>>>> 
>>>>> Henry, I'm still a little lost.
>>>>> Is the final `npixels` a (monadic, in this case) verb which will take a
>>>>> noun argument,
>>>>> or is the current value of windowsize that noun.
>>>>> 
>>>>> If the latter, and windowsize is that noun, then what is the value of y in
>>>>> the original expression  `[x] ".@'name' y`?
>>>>> 
>>>>> If the former (`npixels` is a verb -- and this is the one I'm leaning
>>>>> toward), then what is the y value that is its argument?
>>>>> 
>>>>> TIA.
>>>>> 
>>>>> On Thu, Aug 23, 2018 at 9:41 PM, Henry Rich <henryhr...@gmail.com> wrote:
>>>>> 
>>>>> Often you need for a verb to refer to the value of a name when the noun is
>>>>>> executed, rather than when it is defined.  So, rather than
>>>>>> 
>>>>>> npixels =: */ windowsize
>>>>>> 
>>>>>> which would just be a noun, you write
>>>>>> 
>>>>>> npixels =: 3 : '*/ windowsize'
>>>>>> 
>>>>>> to defer taking the value of (windowsize) until (npixels) is executed.
>>>>>> 
>>>>>> In tacit code, you used to write
>>>>>> 
>>>>>> npixels =: */ @: ". @ ('windowsize'"_)
>>>>>> 
>>>>>> to get the same result.  Recently the syntax was added to allow
>>>>>> 
>>>>>> npixels =: */ @: ". @ 'windowsize'
>>>>>> 
>>>>>> All that still works.  But the (".) verb starts the parser and executes
>>>>>> its y argument as a sentence, with a modest overhead that will matter if
>>>>>> the verbs have small ranks.  Now, you can write
>>>>>> 
>>>>>> npixels =: */ @: (". @ 'windowsize')
>>>>>> 
>>>>>> [parentheses important! make sure you see why].  When (npixels) is
>>>>>> defined, this form will detect that the argument to (".) is a single
>>>>>> name.
>>>>>> When (npixels) is executed, the name will be evaluated without going
>>>>>> through the overhead of starting a sentence.
>>>>>> 
>>>>>> Henry Rich
>>>>>> 
>>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> 
>>>> 
>>>> 
>>>> ---
>>>> This email has been checked for viruses by AVG.
>>>> https://www.avg.com
>>>> 
>>>> ----------------------------------------------------------------------
>>>> 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
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to