История изменений
Исправление antares0, (текущая версия) :
В тикле, для вывода предназначена команда puts.
Но спрашивается, почему puts по умолчанию не ведёт себя как ... В чём смысл? Я не вижу его.
Смысл в том что puts по основной идее tcl пишет в потоковые дескрипторы юникса: терминалы, сокеты, файлы - взаимодействие с инородными системами где нужен «сырой» поток символов а гомоиконность tcl-объектов будет чаще мешать. Его прямым аналогом в лиспе будет write-line который точно также игнорирует гомоиконность. Только что в лиспе он честно требует приводить символы и деревья к строке для однозначности. Лиспы вобще были исторически более замкнуты на свой REPL чем на общение с другими системами поэтому однообразная гомоиконость для них умолчание, а наоборот делать «клей» на лиспе несколько больше работы чем с помощью shell-like tcl|bash/
нет соответствия print-read, которое есть в лиспе.
Даже в лиспе две параллельные системы ввода-вывода. Отдельно на основе «сырых» байтов|символов и отдельно обобщеный read/print на основе *rеad-table* и *print-всякого Второй в tcl просто не завезли за неопределенностью его статуса. Она и в CL выросла из необходимости различать символы как уникальные объекты и строки в качестве последовательности символов. В tcl не было концепции символов оттуда и пошел разлад.
Может быть puts [list <выражение>] является аналогом лиспового print.
Не должен.
format (для вывода в красивом виде) и print - для гомоиконного вывода.
в хламовнике wiki.tk наверняка есть.
Исходная версия antares0, :
В тикле, для вывода предназначена команда puts.
Но спрашивается, почему puts по умолчанию не ведёт себя как ... В чём смысл? Я не вижу его.
Смысл в том что puts по основной идее tcl пишет в потоковые дескрипторы юникса: терминалы, сокеты, файлы - туда где нужен «сырой» поток символов а гомоиконность будет чаще мешать. Его прямым аналогом в лиспе будет write-line который точно также игнорирует гомоиконность. Только что в лиспе он честно требует приводить символы и деревья к строке для однозначности.
нет соответствия print-read, которое есть в лиспе.
Даже в лиспе две параллельные системы ввода-вывода. Отдельно на основе «сырых» байтов|символов и отдельно обобщеный read/print на основе *rеad-table* и *print-всякого Второй в tcl просто не завезли за неопределенностью его статуса. Она и в CL выросла из необходимости различать символы как уникальные объекты и строки в качестве последовательности символов. В tcl не было концепции символов оттуда и пошел разлад.
Может быть puts [list <выражение>] является аналогом лиспового print.
Не должен.
format (для вывода в красивом виде) и print - для гомоиконного вывода.
в хламовнике wiki.tk наверняка есть.