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
lang: ru-ru
contributors:
- ["Poor Yorick", "https://pooryorick.com/"]
translators:
- ["Viktor Sokhranov", "https://github.com/weirdvic"]
filename: learntcl.tcl
filename: learntcl-ru.tcl
---
Tcl был создан [Джоном Оустерхаутом](https://ru.wikipedia.org/wiki/Оустерхаут,_Джон)
@ -40,7 +41,7 @@ Tcl обновляет строковое представление в том
В Tcl используется подход copy-on-write, позволяющий оперировать большими объёмами
данных без дополнительного оверхеда. Процедуры в Tcl автоматически компилируются
в байткод, кроме случаев когда в процедуре используются динамические рутины, такие
как "uplevel", "upvar" и "trace"
как `uplevel`, `upvar` и `trace`.
Программировать на Tcl приятно. Его находят привлекательным хакеры, которым интересны
Lisp, Forth или Smalltalk, а также инженеры и учёные, которым просто необходим
@ -50,8 +51,6 @@ Lisp, Forth или Smalltalk, а также инженеры и учёные, к
синтаксису Tcl не мешать работать с предметной областью проекта. Синтаксис Tcl в этом
смысле даже более минималистичен чем у Lisp.
```tcl
#! /bin/env tclsh
@ -206,9 +205,9 @@ set greeting "Hello $::people::person1::name"
## 4. Переменные и пространства имён
###############################################################################
# Каждая переменная и рутина связанс с пространством имён.
# Каждая переменная и рутина связана с пространством имён.
# Чтобы получить интерпретатор, которые не может сделать ничего, достаточно
# Чтобы получить интерпретатор, который не может сделать ничего, достаточно
# удалить глобальное пространство имён. Особой пользы в этом нет, но это хорошо
# иллюстрирует природу 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!\"
@ -354,7 +349,7 @@ if {3 > 4} {
}
# Циклы реализованы как рутины. Первый и третий аргументы для "for"
# Циклы реализованы как рутины. Первый и третий аргумент для "for"
# обрабатываются как скрипты, а второй аргумент как выражение:
set res 0
for {set i 0} {$i < 10} {incr i} {