Re: Why you shouldn't be afraid to use VARCHAR in RPGLE
Javier Sanchez <[email protected]>
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <CAAvhgxK3L6nN48XY5y52vXqDbnX8kUm+uqcM0ksu7Tefbzs2SQ@mail.gmail.com> |
Simple: One line of code. The compiler would make the hard work with the return value. It is your intellectual work that you want back. A string? A floating point? A char()? Whatever. The single line is clear upon your intention. The == notation is "C", put that away in RPG. Use only one = sign. The return value is your intellectual work. Say it is an IND: dcl-s boolVar IND inz; boolVar = (a = b ? '1': '0'); It's your choice. That is RPG valid code above. JS El jue, 11 dic 2025 a las 17:03, Peter Dow (<[email protected]>) escribió: > Hi Javier, > > I'm one of those RPG programmers that doesn't know C. > > Given > > 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); > > > what is the difference between > > 1. boolVal = (a = b ? 1: 0); > > 2. boolVal = (a == b ? 1: 0); > > 3. boolVal = (a = b); > > From what Paul Therrien said in his reply, it sounds like 2 and 3 are > the same, while 1 is very different. > > 2 and 3 are equivalent to > > if a = b; > boolVal = 1; > else; > boolVal = 0; > endif; > > and 1 is equivalent to > > a = b; > if b = 0; > boolVal = 1; > else; > boolVal = 0; > endif; > > Actually, in RPGLE, boolVal would have to be defined as IND, not INT, in > order for 3 to compile successfully. > > Anyway, if what I stated is correct, then obviously we already have > > boolVal = (a = b); > > and > > a = b; > boolVal = (a = b); > > isn't too onerous or confusing. > > -- > *Peter Dow* / > 909 793-9050 > [email protected] > / > > On 12/11/2025 12:19 PM, Javier Sanchez wrote: > > 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 > >> athttps://archive.midrange.com/rpg400-l. > >> > >> Please [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.