LINUX.ORG.RU

а вам кажется странным поведение двойных кавычек в tcl?

 , ,


2

6

Принимая во внимание следующее:

  • списки в tcl не построены из консов
  • списки в tcl на печати изображаются с помощью фигурных скобок
  • при этом внешняя пара фигурных скобок при печати опускается
  • слова можно считать символами
  • {*} по смыслу есть ,@ (см. Википедию)

Получаем следующее:

# присвоим переменной v список из двух символов b и с
> set v {b c} 
b c 
; то же в лиспе
> (setq v '(b c))
(b c)

# построим двухэтажный список
> list a $v
a {b c}
; то же в лиспе 
> (list 'a v)
; то же в лиспе с помощью квазицитирования
> `(a ,v)

# вклеим содержимое v в список
> list a {*}$v
a b c
; то же в лиспе с помощью квазицитирования
> `(a ,@v)

# А вот это что и зачем? 
> puts "a $v"
a b c

# А так не работает:
> puts "a {*}$v"
a {*}b c

Здесь основной вопрос - зачем двойные кавычки ведут себя вот таким образом? Ведь, казалось бы, двойные кавычки по смыслу и являются аналогом квазицитирования, и поэтому должно быть так:

> "a $v"
a {b c}
> "a {*}$v"
a b c

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

★★★★★

Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от anonymous

Хорошо, тогда следующий вопрос: а зачем в тикле нет списков? И на самом деле они там почти есть:

> lindex [lindex {a b {c d}} 2] 0
c
Возможно, это иллюзия, но довольно стойкая и я всё время пытался ей пользоваться и всё время получал по рукам. За что? В чём был смысл так делать? Я гляжу, как там толково сделано многое, и не готов поверить, что автор просто тупанул.

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

а зачем в тикле нет списков?

Затем же, зачем в bash в основном строки(массивы и то появились не сразу) - потому что так захотели авторы языка

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

Ну ладно, читаем и видим, что на тикль оказали влияние lisp и shell. Ты говоришь, что ген shella выиграл лотерею в этом скрещивании. Как версию это вполне можно принять. Но есть ли более рациональные объяснения?

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

зачем в тикле нет списков?

Так там ничего нет кроме строк. Гомоиконность панимашь. Для скриптования строки удобнее, а со списками лишп получился бы. Но зачем человекам еще один лишп?

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

Ну надо же в конце-то концов сделать для человечества хоть один нормальный лишп. Вот был хороший заход, но опять не склалось у товарища Оустерхаута

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

Ну надо же в конце-то концов сделать для человечества хоть один нормальный лишп. Вот был хороший заход, но опять не склалось у товарища Оустерхаута

У Айка получилось. Учи JS, забудь эту недоскобкоту. Объективно, JS - самый мощный из всех языков программирования когда-либо созданных. Можно много кукарекать насчёт неприменимости JS в крупных проектах (овер 10^6 строк. хотя таких проектов никто из кукарекающих никогда в жизни не сопровождал. максимум - пробовали распаковать zip с такого проекта, полазить, почитать readme и rf -rf с глаз долой). На самом деле, JS давно и далеко уделал все известные лиспо-тикли-куллязычки. Зря ты пыхтишь по лиспо-ностальгии. Лисп хорошо знаешь где? В AST для компилятора цепепе :-) Смехота, но это правда :-)

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

ЖоЭс выйграл потому, что 💩 и идёт с каждым браузером. А говноделы любят 💩 и работодателям дешевле нанять 💩. Вот и весь расклад.

anonymous
()
Ответ на: комментарий от azelipupenko

Дык он и учит. Но вообще херню ты пишешь, зелененький. JS это убогонький нерасширяемый недоалгол. Адепты таких язычков сидят и веками ждут пока добренькие хозяева не снизойдут капнуть им в клювик новых кейвордов. А пока ждут приходится в сишка-стайл говнокодить мегабайты портянок. В тикле ты сам создаешь инструменты, но понятно, что метаязык для быдла это чот сложна.

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

ЖоЭс выйграл потому, что 💩 и идёт с каждым браузером. А говноделы любят 💩 и работодателям дешевле нанять 💩. Вот и весь расклад.

Да всем плевать на эти значки с кофе. Факт то в том, что толку от JS больше чем от всех тиклей с лиспами вместе взятых. Пока ты тешишь себя токсичными мыслишками на предмет «JS - говно», прямо сейчас вот кто-то другой творит софт на JS. Конечно же самодовольные ламерки разных мастей вскукарекнут тут наряду со своей скептикой, что этот софт неправильный, потому что, оказывается «JS - говно». Но кто же вам виноват, что вы - ламерки, и что ваша участь - смотреть как прямо на ваших глазах создаётся объективная реальность, к созданию которой вы не имеете никакого отношения? Ну это ваше личное, это такое.

azelipupenko
()
Ответ на: комментарий от anonymous

JS это убогонький нерасширяемый недоалгол. Адепты таких язычков сидят и веками ждут пока добренькие хозяева не снизойдут капнуть им в клювик новых кейвордов. А пока ждут приходится в сишка-стайл говнокодить мегабайты портянок.

Да знаю я эту лабуду. Один известных ламерок лапши на уши навешал и поржал. Теперь все кому не лень твердят про расширяемый сахар, макры, мощь лиспа, независимость от вендоров, ко-ко-ко. Никаких мегабайтов портянок в JS говнокодить не надо. Нет, ну если кто-то совсем прям лох, то он, обречён. Но это не из-за JS, а из-за лох.

azelipupenko
()
Ответ на: комментарий от anonymous

Не, пока остановил ученье, хотя в любой день готов возобновить, если вдруг лишп перестанет кормить. C JS всё более-менее норм, поскольку он image-based и в нём есть eval, нет удушающих объятий ООП, а также умеренно хороший JIT. Т.е. как платформа он вполне сойдёт. Как конечный язык - вряд ли.

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

Когда ты был рядовым анонимом со смайлами, ты был интереснее. А сейчас ты стал унылым регистрантом с пониженым IQ.

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

Вот это, да. Я аж до конца первого комента не мог понять, что это за кадр пишет. Но

Лисп хорошо знаешь где? В AST для компилятора цепепе :-) Смехота, но это правда :-)

раскрыло всю интригу. Так даже не интересно.

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

Когда ты был рядовым анонимом со смайлами, ты был интереснее. А сейчас ты стал унылым регистрантом с пониженым IQ.

Знаешь сколько подобных реплик мне доводилось слышать? Ты вряд ли досчитаешь. Но эти реплики как-то до лампочки.

azelipupenko
()
Ответ на: комментарий от nezamudich

раскрыло всю интригу. Так даже не интересно.

Лол :-) А что это за вещество на аватаре?

azelipupenko
()
Ответ на: комментарий от nezamudich

Я аж до конца первого комента не мог понять, что это за кадр пишет.

Смайлик прочитал стандарт борщелиспа и окончательно свихнулся.

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