Re: Why you shouldn't be afraid to use VARCHAR in RPGLE

Daniel Gross <[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
As RPG and C differ in a lot of spaces - I would suggest, to not make it so "non obvious" as the ternary operator in C - just make it a %BIF - e.g.:

    var = %IF( a = b : trueVal : falseVal );
 
or

    var = %CASE( a = b : trueVal : falseVal );

This would be RPG-like - compact - easy to read and understand. 

Regards,
Daniel


> Am 11.12.2025 um 21:20 schrieb Javier Sanchez <[email protected]>:
> 
> Brian,
> The "ternary" operator is a very simple concept.  Test in one single line
> "a query" that will yield a true or false and return one out of two values
> that are the ones in the expression after the question mark.
> 
> Put it more clear again:
> dcl-s boolVal int(5) inz;  // No need more room than two bytes
> dcl-s a int(5) inz(10);
> dcl-s b int(5) inz (15);
> 
> boolVal = (a = b ? 1: 0);
> 
> I confess, recognize that my initial example was way too fast written.
> This one is more clear.  Now, without this ILE RPG TR:
> 
> if a = b;
>  boolVar = 1;
> else;
>  boolVar = 0;
> endif;
> 
> 5 lines of code.  Sure, very clear, but very unnecessary!
> This is elegance and efficiency.
> Hey guys! For if any of you took care about it, even Einstein was excited
> with his elegant e=mc2, just look a bit at it!
> One single line! Not a function, not code at all, just concept and
> simplicity!
> “Imagination is more important than knowledge.
> For knowledge is limited, whereas imagination embraces the entire world,
> stimulating progress, giving birth to evolution.”
> -- Albert Einstein
> 
> JS
> 
> 
>> El jue, 11 dic 2025 a las 14:01, Brian Parkins (<[email protected]>)
>> escribió:
>> 
>> May I beg to differ?
>> 
>> I would suggest many folk will find such an expression too cryptic,
>> especially when maintaining code written by others. It may be efficient,
>> it may be "elegant" - but is it easy to read and understand? Take a very
>> simple example:
>> 
>> a = a + 5;  -or-  a += 5;
>> 
>> Personal opinion: the former is more readily understood, the latter not
>> so, and open to miscoding (a =+ 5;). It is my experience that a majority
>> will favour readability in preference to "elegant" coding
>> 
>> Brian.
>> 
>>> On 11/12/2025 14:14, Javier Sanchez wrote:
>>> BTW, I have wondered a lot why you guys have not yet implemented the
>> C-like
>>> expression as:
>>> boolVal = (a = b ? 0: 1);
>>> This is not only necessary for modern RPG but it should have been
>> provided
>>> long time ago! 🙂
>> 
>> --
>> This is the RPG programming on IBM i (RPG400-L) mailing list
>> To post a message email: [email protected]
>> To subscribe, unsubscribe, or change list options,
>> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
>> or email: [email protected]
>> Before posting, please take a moment to review the archives
>> at https://archive.midrange.com/rpg400-l.
>> 
>> Please contact [email protected] for any subscription related
>> questions.
>> 
>> 
> --
> This is the RPG programming on IBM i (RPG400-L) mailing list
> To post a message email: [email protected]
> To subscribe, unsubscribe, or change list options,
> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: [email protected]
> Before posting, please take a moment to review the archives
> at https://archive.midrange.com/rpg400-l.
> 
> Please contact [email protected] for any subscription related questions.
> 
-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact [email protected] for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.