Swift style syntax

Isiah Meadows isiahmeadows at gmail.com
Fri Oct 16 21:00:59 UTC 2015


My operator names for the shifts were modeled after the typical assembly
mnemonics.

- `<<` - `shl` (logical left shift)
- `>>` - `sar` (arithmetic/sign propagating right shift)
- `>>>` - `shr` (logical right shift)

There is no arithmetic left shift, since it's effectively equivalent to the
logical version IIRC.

My main wish is that the names should be short, or there would be no
advantage of using them.

On Fri, Oct 16, 2015, 16:47 Michael McGlothlin <mike.mcglothlin at gmail.com>
wrote:

> Having Op for all operator functions would be a good call. Probably better
> than adding Bitwise, Logic, etc just from the point of view of not filling
> up the namespace to much. I think short names would be fine so long as they
> were readable. So leftShift could be lShift but lsh is probably to
> mysterious. Even operator-like functions without an actual operator
> assigned would make sense I think so no reason not to include pow. A
> general purpose casting operator/func would be good I think but not sure if
> there is a point to specialized ones just to numbers, strings, and whatnot.
>
> On Fri, Oct 16, 2015 at 2:39 PM, Isiah Meadows <isiahmeadows at gmail.com>
> wrote:
>
>> That might work, although these two might need edited for consistency:
>>
>> - Math.pow === Op.pow (assuming `**` gets in)
>> - Op.num should be similar to `x => +x`, not `x => ToNumber(x)`. The
>> behavior is slightly different, but can be observable without modifying
>> `Number`, I believe.
>>
>> On Fri, Oct 16, 2015, 14:43 Tab Atkins Jr. <jackalmage at gmail.com> wrote:
>>
>>> On Thu, Oct 15, 2015 at 11:12 PM, Isiah Meadows <isiahmeadows at gmail.com>
>>> wrote:
>>> > I like the idea, but could the function names be made a little
>>> > shorter? I'd like to at least save some characters on it. Example:
>>> > `(a, b) => a > b` is 15 characters, where `Math.greaterThan` is 16.
>>> >
>>> > For comparison, I also have equivalent versions for the colon-preceded
>>> operators
>>> >
>>> > Here's some naming ideas I have:
>>> [snip]
>>>
>>> At that point, though, the use of the Math namespace starts getting
>>> weird.  Equality and Logical aren't mathematical; Bitwise mostly isn't
>>> either.  (It can sometimes be used to do mathy things, like using
>>> shift to mul/div by a power of 2, but that's not its core purpose.)
>>>
>>> Put them on a new Op namespace object, or into an Op built-in module.
>>> Even shorter, and clearer!
>>>
>>> ~TJ
>>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20151016/d42e59a0/attachment-0001.html>


More information about the es-discuss mailing list