[Jprogramming] Strange(?) behavior of J

Henry Rich henryhrich at gmail.com
Mon Aug 3 17:11:48 UTC 2020


An undefined name is assumed to be a verb, so tally never gets 
executed.  I use

    ifdefined_z_ =: 0 <: [: 4!:0 <

    ifdefined 'a'
0
    ifdefined 'ifdefined'
1

Henry Rich


On 8/3/2020 12:52 PM, Brian Schott wrote:
> This thread hints at a problem I am having.
> In particular the link suggested by Henry
> https://code.jsoftware.com/wiki/Vocabulary/ErrorMessages#value
>
> My problem is that I want to detect an error caused  by an undefined noun
> but my attempt does not produce the desired error using :: .
> For example in the example below, although `a` is undefined, I do not get
> the desired result, 0, from my verb `tally` when I execute `tally a`.
> How can I define tally to produce 0 for an undefined argument. Or how do I
> detect an undefined argument, in general? I have considered using a try.
> ... catch. in an explicit definition, but to me that seems unnecessary.
>
>     a
> |value error: a
>     tally =: # :: 0:
>     tally i. 4
> 4
>     tally a
> tally a
>
> On Wed, Nov 6, 2019 at 5:11 AM Henry Rich <henryhrich at gmail.com> wrote:
>
>> https://code.jsoftware.com/wiki/Vocabulary/ErrorMessages#value
>>
>> Henry Rich
>>
>> On 11/6/2019 4:26 AM, Arnab Chakraborty wrote:
>>> Dear all,
>>>
>>>       Here is a behavior that I noticed only recently, and it puzzles me a
>>> lot:
>>>
>>>     Let's say abc and xyz are not defined in my J session, and type just
>> abc
>>> by itself in a line. Of course, I get a value error. But if I type
>>>
>>> xyz abc
>>>
>>> then J does not produce any error, but simply echos back what I have
>> typed!
>>> I expected that J would start executing from the right, encounter abc,
>> and
>>> produce a value error. If I now define abc (say abc=. 0), then
>>>
>>> xyz abc
>>>
>>> produces a value error (expected) about xyz.
>>>
>>> But why does J become silent in presence of multiple undefined symbols?


-- 
This email has been checked for viruses by AVG.
https://www.avg.com



More information about the Programming mailing list