Pull to refresh

Comments 15

if {[== 0 $st_next_sum]} {
    ...
}


Щито? [expr] для кого придуман?!

if {$st_next_sum == 0} {
    ...
}


И перестаньте выпендриваться.
но [< 1 2 3] короче [1 < 2 < 3].
[expr {1 < 2 < 3}] не работает вообще!

Но зачем Вам такая конструкция?
вспомнил, что в питоне так можно, пробовал это: puts [expr 1 < 2 > 3] выдает 0, а puts [expr 1 < 2 < 3] — 1, хотя puts [expr 1 > 2 < 3] — 1, где логика? Да согласен — не работает, надо было мне все варианты проверить.
Конструкцию такую можно применить для определения того, лежит ли значение в интервале. Если, например, пользователь может ввести значение, большее 0, но меньшее 100, проверка будет в одну строку.
(1 < 2) == 1
(1 > 3) == 0
(1 < 3) == 1
(1 > 2) == 0
(0 < 3) == 1

Что из этого непонятно? :)
спасибо за пояснение, теперь понятно
И да, [expr] надо передавать экранированную строку, тогда он быстрее работает, подставляя переменные сам, а не пользуясь обычной строковой подстановкой.
«экранированную строку» — это в кавычках?:)
И ещё, шебанг работает только в первой строке. Более того, расово верно там писать #!/usr/bin/env tclsh, а не то, что там у Вас.
на первую строку исправил(чтобы работало), остальное войдет в следующую версию. Спасибо за замечания.
Гм. Сейчас перечитал комментарии, понял, что они могли восприняться не так, как того хотелось бы. Вероятно, стоило немножко разбавить их смайликами :) В любом случае, прошу не принимать близко к сердцу, а продолжать изучение дальше, это полезно :)
С удивлением узнал про возможность включить истинно TCL-ный синтаксис математических формул — сначала команда, потом аргументы через пробел: == 0 st_cur_sum. Но все же andrewsh прав, традиционная инфиксная запись удобнее.
И, кстати, tcl не настолько экзотичный язык, чтобы с кодом ссылку на его описание прикладывать. Входит в первую 30-ку; более распространен, чем Erlang, Scala, D.
Статистика — дело изворотливое, я сюда глянул за 2011 год. С чем нельзя не согласиться — популярность тикля падает.
Sign up to leave a comment.

Articles