[fpc-pascal] Feature proposal: function-based assignment operators
Benito van der Zander
benito at benibela.de
Thu Mar 28 18:09:45 CET 2013
>
>
> Declare a custom function and mark it inline for efficiency. That also
> allows you to document it properly, have different implementations
> depending on the parameter types and so on.
that's overkill if it is only an internal datastructure
> our time would be better spent trying to persuade the core developers
> to tolerate extra operators like ⌊ for floor(), and then working out
> how to implement them >:-)
Or allow unicode identifier, and than defining ⌊ for ⌊= would just be a
special case of func=
On 03/28/2013 04:45 PM, Mark Morgan Lloyd wrote:
> Benito van der Zander wrote:
>> Hi,
>> quite often you need to change a value relatively to another value.
>> For example:
>>
>> array1[array2[i]] := array1[array2[i]] + 42;
>>
>> Luckily this can be written as
>>
>> array1[array2[i]] += 42;
>>
>> Which is nice.
>>
>> However, sometimes you do not need addition, but the minimum.
>> For example:
>>
>> array1[array2[i]] := min(array1[array2[i]], 42);
>>
>> Now, you need to repeat all the array indices.
>>
>> Which is very ugly.
>>
>> So there should be an alternative syntax, similar to += :
>> I.e.:
>>
>> array1[array2[i]] min= 42;
>
> Declare a custom function and mark it inline for efficiency. That also
> allows you to document it properly, have different implementations
> depending on the parameter types and so on.
>
> There really are limits to the extent that the underlying Pascal
> should be mangled further. Your time would be better spent trying to
> persuade the core developers to tolerate extra operators like ⌊ for
> floor(), and then working out how to implement them >:-)
>
> array1[array2[i]] := array1[array2[i]] ⌊ 42;
> array1[array2[i]] ⌊= 42;
>
More information about the fpc-pascal
mailing list