Предложение по усовершенствованию JavaScript

Mar 11, 2013 07:42

Выдвигаю предложения по усовершенствованию синтаксиса языка JavaScript.

Для примера разберём такую простую конструкцию, как функция, генерирующая замыкания.

function foo(filter, pattern) {
var f = function(list) { return filter(pattern, list); };
return f;
};Конечно, в JavaScript есть опциональные точки с запятыми. Их можно не ставить, ( Read more... )

fp

Leave a comment

Comments 123

ext_656235 March 11 2013, 15:49:00 UTC
Собственно мы практически получаем CoffeeScript, которым можно и нужно пользоваться. Разве нет?

Reply


mpak666 March 11 2013, 15:49:31 UTC
Ну так ведь почти CoffeeScript получился

foo = (filter, pattern) ->
(list) ->
filter pattern, list

Reply

lionet March 11 2013, 15:50:40 UTC
Стрелки и запятые лишние.

Reply

mpak666 March 11 2013, 15:56:25 UTC
Просто равенства и отступов думаю будет не достаточно, чтобы понимать о чем речь идет в несовсем полностью функциональном языке, это может быть цикл например.

Reply

lionet March 11 2013, 15:57:19 UTC
В питоне решили же.

Reply


p1r4nh4 March 11 2013, 15:56:51 UTC
А как различить "foo filter pattern" и "filter pattern list"? По =? Это не слишком двусмысленно?

Reply

lionet March 11 2013, 15:58:00 UTC
А зачем их различать? foo и filter - это функции. "filter pattern" и "pattern list" - это аргументы к функциям foo и filter, соответственно.

Reply

p1r4nh4 March 11 2013, 15:59:10 UTC
Эм, "foo" - это ж имя новой функции, а не еë вызов. А "filter" - вызов.

Это я про последний пример, если что.

Reply

lionet March 11 2013, 16:00:51 UTC
Ну так новые функции создаются на внешнем уровне (с нулевого отступа).

Reply


mipa March 11 2013, 15:58:12 UTC
Дык а кто мешает? Надо написать препроцессор -- и вперед.

Вон их уже сколько: coffeescript, typescript...

Только те -- для программистов, а этот будет для матшкольников. Надо только еще подсократить, в примерах писать вот так:

foo f p =
\l = f p l

Reply


markizko March 11 2013, 15:59:03 UTC
Отличный пример того, что иногда не надо отменять "лишние" синтаксические конструкты и знаки препинания.

Reply

migmit March 11 2013, 19:21:06 UTC
+1

Reply


Leave a comment

Up