Proofread tcl-ru.html.markdown

This commit is contained in:
Boris Verkhovskiy 2024-04-03 03:18:08 -07:00 committed by GitHub
parent 4e88b2cdba
commit 3c918ac30e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,10 +1,11 @@
--- ---
language: Tcl language: Tcl
lang: ru-ru
contributors: contributors:
- ["Poor Yorick", "https://pooryorick.com/"] - ["Poor Yorick", "https://pooryorick.com/"]
translators: translators:
- ["Viktor Sokhranov", "https://github.com/weirdvic"] - ["Viktor Sokhranov", "https://github.com/weirdvic"]
filename: learntcl.tcl filename: learntcl-ru.tcl
--- ---
Tcl был создан [Джоном Оустерхаутом](https://ru.wikipedia.org/wiki/Оустерхаут,_Джон) Tcl был создан [Джоном Оустерхаутом](https://ru.wikipedia.org/wiki/Оустерхаут,_Джон)
@ -40,7 +41,7 @@ Tcl обновляет строковое представление в том
В Tcl используется подход copy-on-write, позволяющий оперировать большими объёмами В Tcl используется подход copy-on-write, позволяющий оперировать большими объёмами
данных без дополнительного оверхеда. Процедуры в Tcl автоматически компилируются данных без дополнительного оверхеда. Процедуры в Tcl автоматически компилируются
в байткод, кроме случаев когда в процедуре используются динамические рутины, такие в байткод, кроме случаев когда в процедуре используются динамические рутины, такие
как "uplevel", "upvar" и "trace" как `uplevel`, `upvar` и `trace`.
Программировать на Tcl приятно. Его находят привлекательным хакеры, которым интересны Программировать на Tcl приятно. Его находят привлекательным хакеры, которым интересны
Lisp, Forth или Smalltalk, а также инженеры и учёные, которым просто необходим Lisp, Forth или Smalltalk, а также инженеры и учёные, которым просто необходим
@ -50,8 +51,6 @@ Lisp, Forth или Smalltalk, а также инженеры и учёные, к
синтаксису Tcl не мешать работать с предметной областью проекта. Синтаксис Tcl в этом синтаксису Tcl не мешать работать с предметной областью проекта. Синтаксис Tcl в этом
смысле даже более минималистичен чем у Lisp. смысле даже более минималистичен чем у Lisp.
```tcl ```tcl
#! /bin/env tclsh #! /bin/env tclsh
@ -206,9 +205,9 @@ set greeting "Hello $::people::person1::name"
## 4. Переменные и пространства имён ## 4. Переменные и пространства имён
############################################################################### ###############################################################################
# Каждая переменная и рутина связанс с пространством имён. # Каждая переменная и рутина связана с пространством имён.
# Чтобы получить интерпретатор, которые не может сделать ничего, достаточно # Чтобы получить интерпретатор, который не может сделать ничего, достаточно
# удалить глобальное пространство имён. Особой пользы в этом нет, но это хорошо # удалить глобальное пространство имён. Особой пользы в этом нет, но это хорошо
# иллюстрирует природу Tcl. Фактически имя глобального пространства имён это # иллюстрирует природу Tcl. Фактически имя глобального пространства имён это
# пустая строка, но единственный способ представить её -- в виде полного имени: # пустая строка, но единственный способ представить её -- в виде полного имени:
@ -323,12 +322,8 @@ proc greet {greeting name} {
# Как было отмечено ранее, фигурные скобки не обозначают блок кода. # Как было отмечено ранее, фигурные скобки не обозначают блок кода.
# Любое значение, даже третий аргумент "proc" является строкой. # Любое значение, даже третий аргумент "proc", является строкой.
# Предыдущая команда может быть переписана без использования фигурных скобок: # Предыдущая команда может быть переписана без использования фигурных скобок:
# As noted earlier, braces do not construct a code block. Every value, even
# the third argument to "proc", is a string. The previous command
# can be rewritten using no braces:
proc greet greeting\ name return\ \"\$greeting,\ \$name!\" proc greet greeting\ name return\ \"\$greeting,\ \$name!\"
@ -354,7 +349,7 @@ if {3 > 4} {
} }
# Циклы реализованы как рутины. Первый и третий аргументы для "for" # Циклы реализованы как рутины. Первый и третий аргумент для "for"
# обрабатываются как скрипты, а второй аргумент как выражение: # обрабатываются как скрипты, а второй аргумент как выражение:
set res 0 set res 0
for {set i 0} {$i < 10} {incr i} { for {set i 0} {$i < 10} {incr i} {