Выдвигаю предложения по усовершенствованию синтаксиса языка JavaScript.
Для примера разберём такую простую конструкцию, как функция, генерирующая замыкания.
function foo(filter, pattern) {
var f = function(list) { return filter(pattern, list); };
return f;
};Конечно, в JavaScript есть опциональные точки с запятыми. Их можно не ставить,
(
Read more... )
foo = (filter, pattern) ->
(list) ->
filter pattern, list
Reply
Reply
Reply
Reply
Вот в кофескрипте нет : в конце строк и строка не считается закончившейся, поэтому там иногда всë парсится в очень странный джаваскрипт.
Reply
Reply
Reply
list ->
filter pattern, list
например.
А про отступы я немного не понял, а что с ними не так?
Reply
if (a and b and
c)
return 1
Error: In q.coffee, Parse error on line 1: Unexpected 'POST_IF'
Но проблемы-то нет!
А еще
a 5
d: 6
-> a(5, {d: 6})
a 5
d 6
-> Error: In q.coffee, Parse error on line 2: Unexpected 'INDENT'
И вот таких правил, когда специально поддерживается какая-то мелочь - их очень много. Я уже их все выучил, похоже, и сейчас даже не могу вспомнить самые неприятные, но можно сделать ещë хуже. :)
О, кстати, вот это со словарëм убрали в 1.6, хе-хе. Но остальные всë еще на месте.
Reply
if (a and b and
c)
return 1
тут как бы понятно, что если после if другая строка с отступом, то уже это в блоке, но если написать так
if (a and b and
c)
return 1
все ОК.
С хэшами да, была непонятка.
Reply
Reply
Leave a comment