Strict Relational Operators

felix felix8a at gmail.com
Wed Apr 12 05:46:11 UTC 2017


Maybe every operator can have a non-coercing variant?

One possible syntax is to have a modifier on operators
    x = a (<) b (+) c (&&) (!)d;
    if (x (!=) y) ...

Another possible syntax is to have a modifier on expressions
    x = #(a < b + c && !d)
    if #(x != y) ...

On Tue, Apr 11, 2017 at 7:48 PM, Darien Valentine <valentinium at gmail.com> wrote:
> Although I’m unsure if this is wise given there are already eleven symbols
> that are combinations of `=` and `<`/`>`, for symmetry with `==` and `===`
> I’d imagine something like this:
>
> ```
> COERCIVE  STRICT
>>         =>=
> <         =<=
>>=        =>==
> <=        =<==
> ```
>
> Could also follow the pattern `>==` (strict GT) and `<===` (strict GTE),
> which avoids the awkwardness of the latter two sharing opening chars with
> `=>`, but that seems more ambiguous since `>==` doesn’t let you infer
> whether it means strict GT or strict GTE.
>
> It’d be nice to have this functionality built in, but I wonder if it’d
> possibly be preferable to provide it through methods of one of the built-in
> objects, rather than as operators. Functions after all are more flexible.
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>


More information about the es-discuss mailing list