mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-25 16:23:37 +03:00
Proofread tcl-ru.html.markdown
This commit is contained in:
parent
4e88b2cdba
commit
3c918ac30e
@ -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} {
|
||||
|
Loading…
Reference in New Issue
Block a user