[Jprogramming] Beg Q--"if" spelling error???

Hahn, Harvey hhahn at ahml.info
Thu Feb 21 08:47:18 HKT 2008


I'm stumped--again!

I was trying to create a series of "if" statements to process arguments
passed to a J script (standalone app).  In the statement, "if. A do. B
end.", I tested and know that statements A and B are constructed
correctly and work properly (that is, they have the proper syntax,
values, etc.).  But I kept getting an error message every time the
script reached the "if" statements.  I decided to switch over to the
interpreter and see if I could figure out what's going on.  That's when
things really blew my mind!

In order to create a tiny example for your perusal of what was going on,
I made the "A" value above always be true (value of 1, based on what was
returned by J when I typed a true mathematical statement) and stuck in a
simple display action for the "B" value above.  Here's my example and
the J interpreter's response:

   if. 1 do. wdinfo 'success' end.
|spelling error
|      if. 1 do. wdinfo 'success' end.
|      ^

How can there be a "spelling error"???  "if." is exactly what is
described in the "control structures" section of the Vocabulary.  OK, so
I decided that, since x, y, and other characters dropped their
terminating periods starting in J601, I'd try do the same with the words
in the "if" structure:

   if 1 do wdinfo 'success' end  <-- dialog box displays followed by:
|value error: if
|       if 1 do wdinfo'success'end

Interestingly, it *worked*!  Or I should say that it sort of worked:
when I pressed the Enter key, the expected dialog box displayed, but,
when I clicked the "OK" button, the error message above appeared.

Help!  I don't know what's happening or why.  I tried to follow the
proper spelling and syntax of the "if" structure, but it doesn't seem to
work as documented.  Any ideas???  Thanks!  (BTW, I'm running J601c.)

Harvey



More information about the Programming mailing list