Sujet : Re: Interval Comparisons
De : bc (at) *nospam* freeuk.com (bart)
Groupes : comp.lang.cDate : 04. Jun 2024, 11:39:41
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v3mqtc$ct28$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 04/06/2024 08:14, Lawrence D'Oliveiro wrote:
Would it break backward compatibility for C to add a feature like this
from Python? Namely, the ability to check if a value lies in an interval:
def valid_char(c) :
"is integer c the code for a valid Unicode character." \
" This excludes surrogates."
return \
(
0 <= c <= 0x10FFFF
and
not (0xD800 <= c < 0xE000)
)
#end valid_char
Yes it would break compatibility. The first '0 <= c' yields a 0 or 1 value.
But Python can also do it as `c in range(0, 0x10FFFF+1)`.
That could conceivably be added; the main obstacle would be introducing that new `in` keyword, while a better solution than `range` would be likely.
The chances of it actually happening are infinitesimal, and I'd be long dead before it become widely available.
This is the upside of devising your own language; I daily use these forms:
a <= b <= c
b in a .. c
in my systems language. The only stipulation with the first form is that if there are any angle brackets, then they all point the same way, otherwise the result is too confusing.
The language also needs to ensure middle terms of evaluated only once.
If I ever want to have the C meaning of 'a <= b <= c' (say I'm porting some code), then it can be written like this to break it up:
(a <= b) <= c