summaryrefslogtreecommitdiffhomepage
path: root/ru-ru
diff options
context:
space:
mode:
authorBoris Verkhovskiy <boris.verk@gmail.com>2024-04-03 03:18:08 -0700
committerGitHub <noreply@github.com>2024-04-03 03:18:08 -0700
commit3c918ac30ecd153be7b3dfbae8b7966cb8f5ceb2 (patch)
tree4de9af606c330e10090782a6d5635978c78bbc41 /ru-ru
parent4e88b2cdba021d9be72d8e64793d6cd086e8710b (diff)
Proofread tcl-ru.html.markdown
Diffstat (limited to 'ru-ru')
-rw-r--r--ru-ru/tcl-ru.html.markdown27
1 files changed, 11 insertions, 16 deletions
diff --git a/ru-ru/tcl-ru.html.markdown b/ru-ru/tcl-ru.html.markdown
index 723efe30..380d7b05 100644
--- a/ru-ru/tcl-ru.html.markdown
+++ b/ru-ru/tcl-ru.html.markdown
@@ -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/Оустерхаут,_Джон)
@@ -20,7 +21,7 @@ Tcl был создан [Джоном Оустерхаутом](https://ru.wikip
* Удобный кроссплатформенный API для работы с сетью
-* Поддержка виртуальной файловой системы(VFS)
+* Поддержка виртуальной файловой системы (VFS)
* Стекируемые каналы ввода-вывода
@@ -32,15 +33,15 @@ Tcl был создан [Джоном Оустерхаутом](https://ru.wikip
Tcl имеет много общего с Lisp, но в отличие от списков, в Tcl "валютой" языка
являются строки. Все значения являются строками. Список в Tcl это просто строка в
-определённом формате, а тело процедуры(скрипт) это ещё одна строка, а не блок.
+определённом формате, а тело процедуры (скрипт) это ещё одна строка, а не блок.
С целью увеличения производительности, интерпретатор Tcl использует кэшированные
-внутренние представления различных типов данных. Например, рутины(routines), работающие
+внутренние представления различных типов данных. Например, рутины (routines), работающие
со списками, фактически используют внутреннее представление списков, а интерпретатор
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
@@ -65,7 +64,7 @@ Lisp, Forth или Smalltalk, а также инженеры и учёные, к
# когда скрипты становятся сложнее, наступает фрустрация.
# Фигурные скобки {} в Tcl используются не для построения блоков кода или
-# списков, а как механизм экранирования(quoting) для кода. Фактически в Tcl
+# списков, а как механизм экранирования (quoting) для кода. Фактически в Tcl
# нет ни списков, ни блоков кода. Фигурные скобки использутся для
# экранирования специальных символов и потому подходят для представления
# тела процедур и строк, которые должны интерпретироваться как списки.
@@ -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} {