[fpc-devel] if-then-else expression
michael
michael at freepascal.org
Thu Sep 4 08:43:23 CEST 2025
On 2025-09-04 08:05, Sven Barth via fpc-devel wrote:
> Michael Van Canneyt via fpc-devel <fpc-devel at lists.freepascal.org>
> schrieb am Di., 2. Sep. 2025, 14:28:
>
>> On Tue, 2 Sep 2025, Sven Barth via fpc-devel wrote:
>>
>>> Hairy Pixels via fpc-devel <fpc-devel at lists.freepascal.org>
>> schrieb am Di.,
>>> 2. Sep. 2025, 09:50:
>>>
>>>> On Sep 1, 2025 at 3:44:17 PM, Nikolay Nikolov via fpc-devel <
>>>> fpc-devel at lists.freepascal.org> wrote:
>>>>
>>>>> 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;
>>>>>
>>>>>
>>>> Yes I agree but in C-like languages I do use it in function
>> parameters
>>>> just as often. Still feeling like IfThen if made a real intrinsic
>> would be
>>>> most readable and Pascal-like. Since this new expression exists
>> now making
>>>> the intrinsic would be extremely trivial.
>>>>
>>>
>>> It doesn't matter whether it's trivial or not. An IfThen()
>> intrinsic would
>>> have a different behavior from *any* other function-like element
>> and thus
>>> would be a bad idea. Thus there will be *no* auch intrinsic.
>>
>> I don't think this is a good argument:
>>
>> Write(), Writeln, WriteStr and Str() are also intrinsics with
>> "different
>> behaviour" from all other function, intrinsic or not:
>>
>> The : formatting for one, and some arbitrarily limited varargs-like
>> behaviour for another.
>>
>> Yet these are firmly entrenched in pascal.
>>
>> So at least on these grounds, the IfThen() has as much reason for
>> existence as these
>> "real pascal" functions, in my opinion.
>
> But that's also not a reason that there should be more intrinsics that
> behave different from normal functions.
I agree on that.
I only meant to indicate the particular behaviour is not a reason to
refuse a certain intrinsic.
TypeInfo,SizeOf: they take types as argument. This is also different
from regular functions.
We have no choice of course, the intrinsics are necessary to be able to
deviate from what is "normal" in pascal.
Personally, I think we already have too much intrinsics to begin with;
no matter their behaviour. But that is another discussion entirely...
Michael.
More information about the fpc-devel
mailing list