Thinking that all these years (decades?) I could have written  _.5  instead
of  _0.5!   I was wondering if anyone had used that form before in actual
code and I searched the forum posts; apparently, although there are pleanty
of instances of  _0.5  nobody has used   _.5  in actual code, at least in
the forums, with one possible exception.

Learning J is akin to reading an interesting book which it seems it never
ends.  I learned something useful today.


On Saturday, July 1, 2017, HenryRich <[email protected]
<javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:

> To summarize:
>
> A word is numeric if and only if it begins with 0-9 or _
>
> Within a numeric word, zero is not required before a decimal point.
>
> 1e.4 is not allowed because the exponent must be an integer.
>
> Henry Rich
>
>
> On 7/1/2017 1:46 PM, Martin Kreuzer wrote:
>
>> Raul -
>>
>> * Many thanks for pointing out the difference between (.) the character
>> and (.) the conjunction; has made it very clear.
>>
>> * Powers of 10 -- the Dictionary says under /Constants that "The form of
>> a numeric constant ... is elaborated by the use of further letters, as in
>> 2r3 for two-thirds, 2p1 for two [pi], and 2e3p1 for 2000 [pi]."
>>
>> Here we have the exception to the rule formulated; (e) seems -by
>> implementation- to be the "weakest" of these elements, "dominated" by r, p
>> (and x), as a result of accepting only integer (not real) exponents:
>>
>>    1e1r2    NB. 10/2, instead of sqrt(10)
>> 5
>>    1e1p1   NB. 10*pi, instead of 10^3.14...
>> 31.4159
>>    1e1x1   NB. 10*en, instead of 10^2.71...
>> 27.1828
>>
>> -M
>>
>> At 2017-07-01 15:23, you wrote:
>>
>> Looking at word formation is important for understanding this issue:
>>>
>>>    ;:'2 .3 .4 .5'
>>> +-+-+-+-+-+-+-+
>>> |2|.|3|.|4|.|5|
>>> +-+-+-+-+-+-+-+
>>>    ;:'0.2 0.3 0.4 0.5'
>>> +---------------+
>>> |0.2 0.3 0.4 0.5|
>>> +---------------+
>>>    ;:'3j.4'
>>> +----+
>>> |3j.4|
>>> +----+
>>>
>>> An issue here is that . is a conjunction and passing numbers to it is
>>> invalid (bad syntax). Its domain for its verb arguments does not
>>> include numbers.
>>>
>>> That doesn't happen for 3j.4.  Meanwhile, if you look at the result:
>>>
>>>    3j.4
>>> 3j0.4
>>>
>>> you can see that it makes sense.
>>>
>>> Basically, the dot character is a valid part of a number and since
>>> 3j.4 begins with a digit, it is being interpreted as a number, and
>>> since . makes sense where it's being used here there's no error.
>>>
>>> That would not be the case if the j were replaced with an e because
>>> basically no one uses fractions in the exponent in exponential
>>> notation. Hypothetically, it could be implemented, so that instead of
>>> getting
>>>
>>>    3e.4
>>> |ill-formed number
>>>
>>> you would get
>>>
>>>    3*10^0.4
>>> 7.53566
>>>
>>> but since 3e.4 is more likely to be a mistake than something done
>>> intentionally, and since it's easy to catch, it's treated as an error.
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>> On Sat, Jul 1, 2017 at 6:50 AM, bill lam <[email protected]> wrote:
>>> > this is parsed as a token
>>> >    ;:'3e.4'
>>> > +----+
>>> > |3e.4|
>>> > +----+
>>> > but it (rightfully?) throws an error
>>> >    3e.4
>>> > |ill-formed number
>>>
>>> > this is also parsed as a token
>>> >    ;:'3j.4'
>>> > +----+
>>> > |3j.4|
>>> > +----+
>>>
>>> > the behavior seems endemic
>>> >    3p.4
>>> > 4.74221
>>> >    3ad.4
>>> > 2.99993j0.0209438
>>> >    3ar.4
>>> > 2.76318j1.16826
>>> >    3x.4
>>> > 4.47547
>>> >    3b.4
>>> > 1.33333
>>>
>>> > I think either 3e.4 should be legal or all others should be illegal
>>> > for consistent.
>>>
>>> > Сб, 01 июл 2017, Martin Kreuzer Ð½Ð°Ð¿Ð¸Ñ Ð°Ð»(а):
>>> >> Looking at the examples, I came across the difference between
>>> >>
>>> >>    3 j. 4      NB. spaces
>>> >> 3j4
>>> >>
>>> >> and
>>> >>
>>> >>    3j.4      NB. no spaces
>>> >> 3j0.4
>>> >>
>>> >> Given that this (rightfully) throws an error
>>> >>
>>> >>    .2 .3 .4 .5
>>> >> |syntax error
>>> >> |        .2 .3 .4 .5
>>> >>
>>> >>  while this doesn't
>>> >>
>>> >>    0.2 0.3 0.4 0.5
>>> >> 0.2 0.3 0.4 0.5
>>> >>
>>> >> why then is the construct  3j.4 valid..?
>>> >>
>>> >> -M
>>> >>
>>> >>
>>> >> At 2017-07-01 04:43, you wrote:
>>> >>
>>> >> > > As Henry points out, the NuVoc page is quite a bit clearer on
>>> this topic.
>>> >> >
>>> >> > Sample google search:
>>> >> >    site:jsoftware.com inurl:nuvoc complex
>>> >> >
>>> >> > Quite a bit of reading there, if you have the patience for it (be
>>> sure
>>> >> > to mix in plenty of trial and error, though, or it's a total
>>> snoozer).
>>> >> >
>>> >> > Thanks,
>>> >> >
>>> >> > --
>>> >> > Raul
>>> >> >
>>> >> >
>>> >> > On Fri, Jun 30, 2017 at 11:30 PM, Rob Hodgkinson <[email protected]>
>>> wrote:
>>> >> > > Hi Lawrence, the “ill-formed number†i¬  is because "j." is
>>> a verb,
>>> >> > quite different to “œj† which is part of a noun construct
>>> (like 3j4,
>>> >> >> or 1e3 for 1000).
>>> >> >
>>> >> > > So in your examples ...
>>> >> >
>>> >> > > NB. But wait, not so fast:
>>> >> > >   1j.(2^0.5)%2
>>> >> > > |ill-formed number
>>> >> > > NB. No
>>> >> >
>>> >> > > NB. Now try to separate the “j.† verb with a spacspace
>>> either side to
>>> >> > make it clear to J that this is not “1jxxx†where J would
>>> assume you
>>> >> > are try trying to make a complex constant.
>>> >> > >    1 j. (2^0.5)%2
>>> >> > > 1j0.707107
>>> >> >
>>> >> > > The reason is that J can also directly interpret ‘complex
>>> >> > constantsâ€â€™ entered directly using the j notation (as a
>>> continuous
>>> >> > sequence of non-blank chars)â€Â¦
>>> >> > >    3j4     NB. This is a single complex constant 3+i4
>>> >> > > 3j4
>>> >> >
>>> >> > >    3 j4    NB. But now J tries to view this as a list of (3) and
>>> (j4)
>>> >> > which which J would assume is (3) and a variable called (j4).
>>> >> > > |syntax error
>>> >> > > | 3 j4
>>> >> >
>>> >> > > As Henry points out, the NuVoc page is quite a bit clearer on
>>> this topic.
>>> >> >
>>> >> > > HTH, Regards Rob
>>> >> >
>>> >> >
>>> >> > >> On 1 Jul 2017, at 1:14 pm, Lawrence Wickert <
>>> [email protected]>
>>> >> > wrote:
>>> >> > >>
>>> >> > >> Hello,  I am a old EE still trying to learn.  I am a real
>>> beginner
>>> >> > having no end of problems with specifying complex numbers.  I am
>>> using
>>> >> > j64-804 on ubuntu 12.04.  I am either doing something really stupid
>>> or I
>>> >> > need to update to 806.  Updating anything gives me heartburn or
>>> worse so
>>> >> > I hope it is just my misunderstanding of basic principles. Although
>>> I
>>> >> > have a bad habit of RTFM as a last resort I have tried the
>>> Dictionary to
>>> >> > no avail.  I appreciate any guidance.
>>> >> > >>
>>> >> > >>   0j(2^0.5)%2
>>> >> > >> |ill-formed number
>>> >> > >>
>>> >> > >>   0j((2^0.5)%2)
>>> >> > >> |ill-formed number
>>> >> > >>
>>> >> > >>   j.(2^0.5)%2
>>> >> > >> 0j0.707107
>>> >> > >> NB. Eureaka, OK, I get it!
>>> >> > >>
>>> >> > >> NB. But wait, not so fast:
>>> >> > >>   1j.(2^0.5)%2
>>> >> > >> |ill-formed number
>>> >> > >> NB. No
>>> >> > >>
>>> >> > >>   1j(2^0.5)%2
>>> >> > >> |ill-formed number
>>> >> > >> NB. Still No
>>> >> > >>
>>> >> > >>   1+j.(2^0.5)%2
>>> >> > >> 1j0.707107
>>> >> > >> NB. This works!
>>> >> > >>
>>> >> > >> Let's try to do something with it:
>>> >> > >>   k=:(0 1+j.(2^0.5)%2 3 4 0 5)
>>> >> > >> |length error
>>> >> > >> |   k=:(0 1    +j.(2^0.5)%2 3 4 0 5)
>>> >> > >>
>>> >> > >> NB. Maybe parantheses will help:
>>> >> > >>   k=:(0 (1+j.(2^0.5)%2) 3 4 0 5)
>>> >> > >> |syntax error
>>> >> > >> |   k=:(    0(1+j.(2^0.5)%2)3 4 0 5)
>>> >> > >>
>>> >> > >> NB. This one has to work:
>>> >> > >>   k=:(0 1j0.7071 3 4 0 5)
>>> >> > >>   k
>>> >> > >> 0 1j0.7071 3 4 0 5
>>> >> > >> NB. It does but it can't be the only way to do it.
>>> >> > >>
>>> >> > >> NB. One last rry:
>>> >> > >>   g=: 1+j.(2^0.5)%2
>>> >> > >>   g
>>> >> > >> 1j0.707107
>>> >> > >> NB. That's nice.
>>> >> > >>
>>> >> > >>   k=:(0 g 3 4 0 5)
>>> >> > >> |syntax error
>>> >> > >> |   k=:(    0 g 3 4 0 5)
>>> >> > >> NB. This isn't nice.
>>> >> > >>
>>> >> > >> Lost in the high desert of New Mexico, Larry Wickert
>>> >> > >>
>>> >> > >> ------------------------------------------------------------
>>> ----------
>>> >> > >> For information about J forums see
>>> http://www.jsoftware.com/forums.htm
>>> >> >
>>> >> > > ------------------------------------------------------------
>>> ----------
>>> >> > > For information about J forums see http://www.jsoftware.com/forum
>>> s.htm
>>> >> > ------------------------------------------------------------
>>> ----------
>>> >> > For information about J forums see http://www.jsoftware.com/forum
>>> s.htm
>>> >>
>>> >> ------------------------------------------------------------
>>> ----------
>>> >> For information about J forums see http://www.jsoftware.com/forum
>>> s.htm
>>>
>>> > --
>>> > regards,
>>> > ====================================================
>>> > GPG key 1024D/4434BAB3 2008-08-24
>>> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>> > ----------------------------------------------------------------------
>>> > 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
>>
>
>
> ---
> This email has been checked for viruses by AVG.
> http://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

Reply via email to