[fpc-devel] if-then-else expression
Nikolay Nikolov
nickysn at gmail.com
Mon Sep 1 10:44:17 CEST 2025
On 8/29/25 5:30 PM, Hairy Pixels via fpc-devel wrote:
> On Aug 28, 2025 at 5:10:56 AM, Sven Barth via fpc-devel
> <fpc-devel at lists.freepascal.org> wrote:
>> Also there *will* be the if-then-expression, the question is only
>> when the merge request is finalized enough (I currently can't check,
>> so I can't comment on any progress there).
>
>
> I didn’t realize it was imminent.
>
> What about this:
>
> if (if x > 10 then 1 else -1) > 0 then
> ;
>
> You can do confusing things like this too right? I don’t think we’re
> going to avoid confusion with the intrinsic or this syntax.
Yes, that would become valid syntax. However, I doubt you're gonna see
such code anytime soon, outside of obfuscated code contests (or vibe
coded AI slop). Your nested if example is pointless, because it is
equivalent to the much simpler:
if x > 10 then
;
You're more likely to see things like:
a := if x > 10 then 1 else -1;
instead of
if x > 10 then
a := 1
else
a := -1;
At least that's what I see in Rust code, which has a similar "if" as an
expression, as well as a "if" as a statement. People who have the
tendency to like functional programming tend to prefer the first form.
Every feature can be abused to write ugly code, but this one is not so
bad, actually.
Nikolay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20250901/3da3e858/attachment.htm>
More information about the fpc-devel
mailing list