LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Нет. Всё же неправильные строки в tcl. Вот почему. В лиспе, если я печатаю строку, то я могу обратно получить такую же строку read-om, если я вобью в read буквально то, что было напечатано.

> "asdf"
==> "asdf"
> (read)
"asdf"
==> "asdf"
Там есть нюансы, но это лишь нюансы. То же касается любых сериализуемых в строку данных, т.е. я могу напечатать произвольный связный граф из символов, чисел, строк, списков, нетипизированных массивов и структур (если у них не перешиблен метод печати), и он будет зачитан read-ом из своего печатного представления.

В тикле, для вывода предназначена команда puts. При этом фигурные скобки, защищающие строку с пробелами, концами строки и долларами, не печатаются. Поэтому в тикле нет соответствия print-read, которое есть в лиспе. Может быть puts [list <выражение>] является аналогом лиспового print. Но спрашивается, почему puts по умолчанию не ведёт себя как puts list? В чём смысл? Я не вижу его. Нужно было завести две команды: format (для вывода в красивом виде) и print - для гомоиконного вывода.

Исходная версия den73, :

Нет. Всё же неправильные строки в tcl. Вот почему. В лиспе, если я печатаю строку, то я могу обратно получить такую же строку read-om, если я вобью в read буквально то, что было напечатано.

> "asdf"
==> "asdf"
> (read)
"asdf"
==> "asdf"
Там есть нюансы, но это лишь нюансы.

В тикле, для вывода предназначена команда puts. При этом фигурные скобки, защищающие строку с пробелами, концами строки и долларами, не печатаются. Поэтому в тикле нет соответствия print-read, которое есть в лиспе. Может быть puts [list <выражение>] является аналогом лиспового print. Но спрашивается, почему puts по умолчанию не ведёт себя как puts list? В чём смысл?