Comments 14
Дефолтные значения аргументов и многострочные литералы — это, бесспорно, здорово, но пока синтаксис не подсвечивается — лично у меня интерес будет больше академический.
Я бы предпочел какую-нибудь изящную синтаксическую конструкцию для .bind и списочные выражения.
var chars = Array.prototype.forEach.call ('0123456789abcdef', lambda arg.charCodeAt (0));
Я бы предпочел какую-нибудь изящную синтаксическую конструкцию для .bind и списочные выражения.
Добавить подсветку ключевых слов или многострочных строк в тот же Sublime Text несложно, но до полноценной подсветки (список аргументов, например) это, конечно, не дотягивает.
Синтаксическая конструкция для .bind — отличная идея, надо будет только сперва придумать, как она должна выглядеть.
А насчёт списочных выражений, можно было бы сделать, например, так:
Что разворачивалось бы во что-то вроде этого:
Стоит ли делать?
Синтаксическая конструкция для .bind — отличная идея, надо будет только сперва придумать, как она должна выглядеть.
А насчёт списочных выражений, можно было бы сделать, например, так:
var chars = [ '0123456789abcdef' to lambda arg.charCodeAt (0) ]
Что разворачивалось бы во что-то вроде этого:
(function (array, fn){
var result = [], temp;
for (var i = 0; i < array.length; i ++){
temp = fn (array [i]);
if (temp !== undefined)
result.push (temp);
}
})('0123456789abcdef', function (arg){ return arg.charCodeAt (0) })
Стоит ли делать?
Синтаксическая конструкция для .bind — отличная идея, надо будет только сперва придумать, как она должна выглядеть.
Не знаю, посмотрите на Haskell.
var chars = [ '0123456789abcdef' to lambda arg.charCodeAt (0) ]
Имхо, скорее, так:
[lambda arg.toString().charCodeAt(0) for each i in '0123456789abcdef']
Вы видели CoffeeScript?
Да, он, конечно, получше, но есть у него один фатальный недостаток...
Мне полюбился обычный синтаксис JavaScript и, к тому же, не хотелось переписывать уже имеющийся проект. Хотя, конечно, в результате я потратил куда больше времени. Зато инвайт получил. :)
Мне полюбился обычный синтаксис JavaScript и, к тому же, не хотелось переписывать уже имеющийся проект. Хотя, конечно, в результате я потратил куда больше времени. Зато инвайт получил. :)
Ну а смысл тогда этих lamda function, если есть, к примеру, arrow function? И аргументы функций по умолчанию тоже есть. Нативный JS сильно шагнул за последнее время, вот только не все движки эти новшества поддерживают. Так зачем же городить новый синтаксис, если вам нравится обычный JS?
Тогда посмотрите Typescript, он ES6-совместим, да собственно и сам ES6 не за горами (а в ноде с 0.11 с флагом
Хотя опыт написания своего препроцессора со своей версией блекджека в любом случае останется полезным :)
--harmony
— уже).Хотя опыт написания своего препроцессора со своей версией блекджека в любом случае останется полезным :)
Флаг --harmony мало что даёт, на данный момент лучшая нативная поддержка будущего стандарта (причём без всяких флагов) у ФФ.
А про typescript могу сказать, что его использование, как транслятора ECMAScript6 (по личному опыту) весьма сомнительно, т.к. всё равно придётся юзать генерики, интерфейсы и прочие специфичные штуки, а потом замучаемся их удалять, так что если нужна поддержка ECMAScript 6, то лучше сразу взять транслятор именно его.
А PEG грамматику стандартного javascript вы сами писали или где-то взяли?
Зачем придумывать свой синтаксис если есть ECMAScript 6. Для себя на коленке накатал github.com/kobezzza/NeJS (чужие трансляторы юзал, но бесило, что () => заменяются на .bind и многие трансляторы не позволяют сохранить комментарии).
Sign up to leave a comment.
Ещё один препроцессор для JavaScript