LINUX.ORG.RU
Ответ на: комментарий от www_linux_org_ru

> Вовсе не обязана: (setq y (+ :if > x 0 :then x :else - x :end 1))

видимо, я так до конца и не понял, что же ты все-таки хочешь :( Если ты хочешь сделать кастомный if - так можно - не вижу препятствий, только смысл?

>> my-function (if (x > 0) { make_something (a, b); f(0)} else h(d), make_instance (0, 5)) >x>0 ? ({ make_something (a, b); f(0); }) : ({ h(d); make_instance (0, 5); })

gnu c/c++ extention -- зачем сделали? для макросов, вестимо :-)

Так и знал, что сишный тернарный если-то покажут :). И часто ты такое встречаешь в чужом коде, так вообще кто-нить пишет? А цикл сможешь засунуть в аргументы функции?

paranonymous
()
Ответ на: комментарий от www_linux_org_ru

>Полезно было бы найти объективные критерии качества синтаксиса.

...а так-же вкуса, запаха, женской красоты, хрен его знает чего ещё =)

Может лучше критерии оптимальности синтаксиса для <вставить по своему усмотрению>?

yyk ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>Полезно было бы найти объективные критерии качества синтаксиса. Хотя вариации на тему вкусов могут быть.

см. "фразу о лиспе". там эффективный тезаурус считали :)

jtootf ★★★★★
()
Ответ на: комментарий от paranonymous

> А цикл сможешь засунуть в аргументы функции?

Я ж тебе УЖЕ показал, как это делается.

f( ({
   float s=0;
   for(i=1; i<100; i++)
     s+=1.0/i;
   s;
}) )

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от jtootf

> см. "фразу о лиспе". там эффективный тезаурус считали :)

Это поможет оценить качество метапрограммирования, но не синтаксиса

ЕМНИП лишние скобки мешают читать, но на тезаурус не влияют?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от yyk

> ...а так-же вкуса, запаха, женской красоты... Может лучше критерии оптимальности синтаксиса для <вставить по своему усмотрению>?

Для чтения программ человеком. Предвижу возражения, что оно субъективно -- но ведь имеются и объективные компоненты. Например, наличие ног примерно одинаковой длины в случае женской красоты :-)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от paranonymous

> Если ты хочешь сделать кастомный if - так можно - не вижу препятствий, только смысл?

1. редактор должен позволять скакать по такому синтаксису, с учетом вложенных if без скобок

2. print должен печатать именно в таком виде

3. ну и спросить ден73

> Так и знал, что сишный тернарный если-то покажут :). И часто ты такое встречаешь в чужом коде, так вообще кто-нить пишет?

Очень часто, в хедерах стандартной библиотеки gnu С. В плюсах уже не часто.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от paranonymous

> А цикл сможешь засунуть в аргументы функции?

А еще надо уметь засунуть в аргументы функции определение производного класса (это сделано в яве). Интересно, умеет ли гцц определение производного класса внутри ({ }).

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>Для чтения программ человеком. Предвижу возражения, что оно субъективно -- но ведь имеются и объективные компоненты. Например, наличие ног примерно одинаковой длины в случае женской красоты :-)

Нету. Если только ты сильно не ограничишь выборку.

yyk ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>Для чтения программ человеком. Предвижу возражения, что оно субъективно -- но ведь имеются и объективные компоненты

бред. программисты на J считают его очень читаемым, и в принципе они по-своему правы; RMS считает синтаксис Tcl ужасным, а сам при этом пишет на LISP. критерии можно воодить применительно к конкретной задаче, разве что, да и то исключительно в смысле избыточности (недостаточности) синтаксиса для описания семантики

jtootf ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

> 1. редактор должен позволять скакать по такому синтаксису, с учетом вложенных if без скобок 2. print должен печатать именно в таком виде 3. ну и спросить ден73

Фактически, ты хочешь новый язык поверх лиспа с сильно другим синтаксисом, и, собственно, лисп позволяет тебе это сделать (множество других языков даже этого не могут предоставить) - и ты, вместе с ден73 жалуешься на то, что в лиспе нет из коробки для твоего только что сделанного языка иде. Лично мне неизвестен язык или среда разработки, которая позволяла бы вместе с созданием нового синтаксиса автоматическую его поддержку в иде, если ты такой знаешь - скажи, мне интересно было бы на это посмотреть. Собственно, я с таким же успехом могу пожаловаться, что феррари - говно, потому что я на ней добираюсь от работы до дома не мгновенно, а за целый час. Опять же мне кажется, что в лиспе есть более серьезные проблемы, чем 4 лишних скобки для let или невозможность в slime прыгать по :if-:then.

paranonymous
()
Ответ на: комментарий от www_linux_org_ru

> Очень часто, в хедерах стандартной библиотеки gnu С. В плюсах уже не часто.

Наверное ужасно выглядит, учитывая, что приходиться использовать даже больше скобок чем в лиспе.

paranonymous
()
Ответ на: комментарий от jtootf

> RMS считает синтаксис Tcl ужасным, а сам при этом пишет на LISP.

http://web.cecs.pdx.edu/~trent/gnu/tcl-not

внимательное прочтение показывает, что основная притенизия РМС к тиклю -- тормоза, а насчет синтаксиса он ставит тикль и лисп в равное положение (peculiar syntax that appeals to hackers <-> simple syntax that hackers like) и обещает гнутый язык c more traditional algebraic syntax -- и где он, спрашивается?

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.