@poopoo
poopoo
19 Sep 2020

З книжки „Tcl and the Tk Toolkit (2nd Edition)“, John K. Ousterhout & Ken Jones:

…Tcl parser doesn’t apply any meaning to the words of a command while it parses them. All of the preceding meanings are applied by
individual command procedures, not by the Tcl parser. This approach is similar to that of most shell languages but different from most programming languages. For example, consider the following C program code:

x = 4;
y = x+10;

In the first statement C stores the integer value 4 in variable x. In the second statement C evaluates the expression x+10 , fetching the value of variable x and adding 10 , and stores the result in variable y . At the end of execution, y has the integer value 14 . If you want to use a literal string in C without evaluation, you must enclose it in quotes. Now consider a similar looking program written in Tcl:

set x 4
set y x+10

The first command assigns the string 4 to variable x. The value of the variable need not have any particular form. The second command simply takes the string x+10 and stores it as the new value for y. At the end of the script, y has the string value x+10, not the integer value 14. In Tcl, if you want evaluation you must ask for it explicitly:

set x 4
set y [expr $x+10]

Evaluation is requested twice in the second command. First, the second word of the command is enclosed in brackets, which tells the Tcl parser to evaluate the characters between the brackets as a Tcl script and use the result as the value of the word. Second, a dollar sign has been placed before x. When Tcl parses the expr command, it substitutes the value of variable x for the $x. If the dollar sign were omitted, expr ’s argument would contain the string x, resulting in a syntax error. At the end of the script, y has the string value 14.

Виглдаяє цікаво, але незрозуміло як до такого хтось міг додуматися, нащо так писати і в чому смисл.

20 Sep 2020

Для начала лучше почитать историю тикла и его применимость. К примеры того же Остерхаута Сценарии: высокоуровневое программирование для XXI века.
Суть в том, что все есть команда, как в шелл-подобных языках.

    **command** *param...*

с тем, что вместо конкретной семантики, придется запоминать параметры комманд + активное использование подстановок может путать. типичный язык-изолента, для практического применения.
Язык норм и рекомендуется освоить, чтобы наскриптовать и оно будет работать на поддерживаемых платформах с минимальным количеством изменений. для ознакомления Androwish имеющий сборки с батарейками для андроида, линухов, окошек, яблок etc.

Комментарий был отредактирован в 01:36:59 20.09.2020
#zmbzw/1
20 Sep 2020

schizomurr, плюсану. Приятный язык для своей ниши, хотя и местами дико странный. С текстами и гуем достаточно удобно работать

#zmbzw/2 в ответ на /1
20 Sep 2020

Минусану вас всех. Шелл-стайл языки — ногострельный рак.

#zmbzw/3 в ответ на /2
20 Sep 2020

Не будь букой: шеллоязыки нужны чтобы сделать здесь и сейчас. Как поговаривал Екклиcиаст: «Есть время собирать, нет времени — скриптуй».

#zmbzw/4 в ответ на /3
20 Sep 2020

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

#zmbzw/5 в ответ на /4
20 Sep 2020

можно, но «на более приятных языках» мнения разойдутся.

#zmbzw/6 в ответ на /5
20 Sep 2020

Так ты же не консилиумом выбираешь на каком языке тебе писать. Выбираешь тот, на котором комфортно писать, и поехал)

#zmbzw/7 в ответ на /6
20 Sep 2020

как это не консилиум??? А поорать на самого себя, на монитор, на комп, на свое отражение, на листок бумаги, на карандаш-ручку, опять между себя, поспрашивать кошку, фикус, лампу— это уже да. :)

#zmbzw/8 в ответ на /7
20 Sep 2020

Кошек надо гладить, Раджа подтвердит :)

#zmbzw/9 в ответ на /8
20 Sep 2020

Кошек надо гладить

А еще кормить, спать, купать, играть и прочее-прочее-прочее, но кормить таки приоритетнееююю это любая кошка скажет.

В какой-то момент приходит, что настольная лампа больше в "компах" понимает, тем более кошки и фикус.

#zmbzw/10 в ответ на /9

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.