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.