mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-05-05 14:28:31 +00:00
Proofread tcl-ru.html.markdown
This commit is contained in:
parent
4e88b2cdba
commit
3c918ac30e
@ -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/Оустерхаут,_Джон)
|
||||||
@ -20,7 +21,7 @@ Tcl был создан [Джоном Оустерхаутом](https://ru.wikip
|
|||||||
|
|
||||||
* Удобный кроссплатформенный API для работы с сетью
|
* Удобный кроссплатформенный API для работы с сетью
|
||||||
|
|
||||||
* Поддержка виртуальной файловой системы(VFS)
|
* Поддержка виртуальной файловой системы (VFS)
|
||||||
|
|
||||||
* Стекируемые каналы ввода-вывода
|
* Стекируемые каналы ввода-вывода
|
||||||
|
|
||||||
@ -32,15 +33,15 @@ Tcl был создан [Джоном Оустерхаутом](https://ru.wikip
|
|||||||
|
|
||||||
Tcl имеет много общего с Lisp, но в отличие от списков, в Tcl "валютой" языка
|
Tcl имеет много общего с Lisp, но в отличие от списков, в Tcl "валютой" языка
|
||||||
являются строки. Все значения являются строками. Список в Tcl это просто строка в
|
являются строки. Все значения являются строками. Список в Tcl это просто строка в
|
||||||
определённом формате, а тело процедуры(скрипт) это ещё одна строка, а не блок.
|
определённом формате, а тело процедуры (скрипт) это ещё одна строка, а не блок.
|
||||||
С целью увеличения производительности, интерпретатор Tcl использует кэшированные
|
С целью увеличения производительности, интерпретатор Tcl использует кэшированные
|
||||||
внутренние представления различных типов данных. Например, рутины(routines), работающие
|
внутренние представления различных типов данных. Например, рутины (routines), работающие
|
||||||
со списками, фактически используют внутреннее представление списков, а интерпретатор
|
со списками, фактически используют внутреннее представление списков, а интерпретатор
|
||||||
Tcl обновляет строковое представление в том случае если оно используется в скрипте.
|
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
|
||||||
|
|
||||||
@ -65,7 +64,7 @@ Lisp, Forth или Smalltalk, а также инженеры и учёные, к
|
|||||||
# когда скрипты становятся сложнее, наступает фрустрация.
|
# когда скрипты становятся сложнее, наступает фрустрация.
|
||||||
|
|
||||||
# Фигурные скобки {} в Tcl используются не для построения блоков кода или
|
# Фигурные скобки {} в Tcl используются не для построения блоков кода или
|
||||||
# списков, а как механизм экранирования(quoting) для кода. Фактически в Tcl
|
# списков, а как механизм экранирования (quoting) для кода. Фактически в Tcl
|
||||||
# нет ни списков, ни блоков кода. Фигурные скобки использутся для
|
# нет ни списков, ни блоков кода. Фигурные скобки использутся для
|
||||||
# экранирования специальных символов и потому подходят для представления
|
# экранирования специальных символов и потому подходят для представления
|
||||||
# тела процедур и строк, которые должны интерпретироваться как списки.
|
# тела процедур и строк, которые должны интерпретироваться как списки.
|
||||||
@ -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} {
|
||||||
|
Loading…
Reference in New Issue
Block a user