I was attempting to show the usefulness of stems.  I did a quick and dirt
y 
assignment of values in the example because how the values got there was 

not what I was trying to show.  In putting together a simple example 
quickly from several real EXEC's I made some compromises.

In many of my EXEC's I have to dynamically extract an unknown number of 

unknown values from a report.  Stems give an easy way to organize the 
extracted data and track whether a particlar value has been seen before o
r 
not.  My appologies for inadvertantly mixing  different techniques for 

detection of new values (null assignment vs. using SYMBOL).

And I agree this, is beyond usefullness to the OP.

Brian Nielsen


On Wed, 9 Jul 2008 00:18:42 +0000, Chip Davis <[EMAIL PROTECTED]> wrote:

>[NOTE: This thread has gone well beyond being of any use to the OP, 
however it
>may have pedagogical value to others.  Maybe.]
>
>As big a fan of Rexx stem associative arrays as I am, I should emphasize
 
that
>none of the below _enhances_clarity_.  In fact, one could safely argue 

that it
>raises the Rexx Astonishment Factor quite high.
>
>That said, the OP was dealing with only a binary ("yes" vs anything else
) 
case.
>  Another way to code for multiple positive responses would be:
>
>   Parse Value 01 I WILL GROVEL With 1 _. 2 _.Y . 2 _.YE . 2 _.YES .    
,
>                                     2 _.OKAY . 2 _.PLEASE . 2 _.SURE . 
,
>                                     4 phrase 2 _.phrase .
>
>   Say "Should I do this?"
>   Parse Upper Pull answer
>
>   If _.answer Then Say "I will do it."
>               Else Say "I will not do it."
>
>Not that I am espousing this sort of programming (there is such a thing 
as
>giving the user too many options) but the PARSE instruction packs quite 
a 
bit of
>power and will usually perform multiple assignments faster than multiple

>assignment statements.
>
>-Chip-
>
>On 7/8/08 14:45 Kris Buelens said:
>> Beware: now I will pop in:
>> The _. stem was initalized to '' (nullstring)
>> consequently there is no need to check with SYMBOL()
>>
>> Futhermore when coding SYMBOL('_.'answer) you will get a double
>> translation, if it were required/better, one should code
>>
>>    When symbol('_.answer')<>'VAR' then ....
>>
>> With your SYMBOL() code, an answer like I GROVEL BEFORE YOU TO PERMIT
>> IT will be refused
>>
>> 2008/7/8 Brian Nielsen <[EMAIL PROTECTED]>:
>>> Before someone dings me for it, the SELECT below should have this as 

the
>>>
>>> first WHEN clause:
>>>
>>> WHEN symbol('_.'answer)<>'VAR'
>>>   THEN say 'Invalid answer'
>>>
>>>
>>> Brian Nielsen
>>>
>>> On Mon, 7 Jul 2008 16:51:27 -0500, Brian Nielsen 
<[EMAIL PROTECTED]>
>>>
>>> wrote:
>>>
>>>> On Mon, 7 Jul 2008 20:26:50 +0000, Chip Davis <[EMAIL PROTECTED]> wrot
e:
>>>>
>>>>> In fairness, your problem is not caused by unfamiliarity with forma
l
>>>>> logic, but mere lack of clarity.
>>>> Brings back memories of the obfuscated C contest.  Some of those 
entries
>>>> were brilliant.
>>>>
>>>>> If I might suggest an alternative so far overlooked:
>>>> And here is another (obscure) alternative that also allows phrases a
nd
>>>> synonyms without complicated logic tests:
>>>>
>>>> /* */
>>>>
>>>> _.=''
>>>> _.y='Y'
>>>> _.ye='Y'
>>>> _.yes='Y'
>>>> _.okay='Y'
>>>> _.please='Y'
>>>> _.maybe='Help'
>>>> phrase='I GROVEL BEFORE YOU TO PERMIT IT'
>>>> _.phrase='Y'
>>>> phrase='YOU ARE CRAZY IF YOU THINK I WANT TO DO THAT'
>>>> _.phrase='N'
>>>>
>>>> say 'Should I do this?'
>>>> pull answer
>>>>
>>>> SELECT
>>>>   WHEN _.answer='Y'
>>>>      THEN say 'I will do it'
>>>>   WHEN _.answer='N'
>>>>      THEN say 'I will not do it'
>>>>   WHEN _.answer='Help'
>>>>      THEN say 'RTFM and make up your mind'
>>>>   OTHERWISE say 'Invalid answer'
>>>> END
>>>>
>>>>
>>>> Brian Nielsen
>>>> =======================
=
>>> =======================
==
>>> =======================

>>>
>>
>>
>>
>========================
=========================
========================

Reply via email to