Tcl: відмінності між версіями

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
Немає опису редагування
(Сторінка очищена)
Мітка: Очищення
Рядок 1: Рядок 1:
{{Stub}}


[[Файл:Tcl.png|300px|thumb|right|]]
'''Tcl''' ''(«'''T'''ool '''C'''ommand '''L'''anguage», тікль, ті-сі-ель, Tcl/Tk)'' — імперативна інтерпретована скриптова мова програмування. Майже завжди використовується разом з тулкітом Tk.
== Короткий огляд ==
=== Синтаксис ===
Tcl має другий за дурістю синтаксис після [[Lisp]] серед усіх мов програмування. Уся їбонутість синтаксису проявляється у фігурно-дужко-філії. Типова програма на Tcl складається з опису алгоритму на 5% і фігурних дужок на [[95%]]. Найпростіше синтаксис Тікля можна описати так:
<pre>
command arg1 arg2
</pre>
У читача може виникнути питання: «А де ж фігурні дужки?». А дужки використовуються для групування елементів синтаксису, тобто не так як в [[C]], а зовсім йобнуто:
<pre>
set liczba [gets stdin]
while { $liczba != 42 } { puts $liczba; set liczba [gets stdin] }
</pre>
=== Фішки ===
Однією з найбільших фішок Тікля є підтримка метапрограмування, що безумовно дуже доставляє. Також, оскільки мова - інтерпретована, вона підтримує динамічні структура даних: асоціативні масиви і інше. Також є всякі ніштяки типу програмування у функціональному стилі і інше. Все це дуже виділяє мову серед інших.
=== Інші елементи синтаксису ===
{| align="center" class="wikitable"
|+
! |Символ
! |Його значення
! |Приклад
|-----
| <code>$</code>
| Підстановка значення змінної
| <code>puts $x</code>
|-----
| <code>#</code>
| Коментар до кінця рядка. Коментарі ігноруються під час транслювання коду
| <code>set x 12 #це коментарій</code>
|-----
| <code>[]</code>
| Підстановка результату виконання команди у квадратних дужках
| <code>set x [gets stdin] #присвоїть змінній х значення введене з клавіатури</code>
|-----
| <code>""</code>
| Групування елементів з підстановкою значень змінних
| <code>puts "b = $b"</code>
|-----
| <code>{}</code>
| Як вже було сказано, групування елементів.
| puts {Hello, world!!!}
|-----
| <code>\</code>
| Цитування керуючого символа
| puts "\$" #виведе "$"
|+
|}
=== Мани ===
==== Присвоєння змінній значення ====
Для цього використовується не знак "=", а команда set
<pre>
set x 12 #присвоїть змінній x значення 12
</pre>
==== Ввід/вивід ====
Для виводу використовується команда <code>puts</code>:
<pre>
puts "SHIT" #отаман вочевидячки каже, що результатом виконання цієї команди буде вивід на екран слова Shit
</pre>
А для вводу використовується команда <code>gets</code>:
<pre>
set x [gets stdin] #присовїть змінній х значення введене з клавіатури
</pre>
==== Цикли ====
Як і будь-якій мові, у Тіклі є 3 види циклів: for, foreach і while:
<pre>
while {Якийсь вираз}{
    команди, що будуть виконуватися поки вираз у дужках істинний
}
</pre>
<pre>
for {set i 0} {$i < 16} {incr i} {
    #якийсь код
}
</pre>
<pre>
foreach number $numbers {
    set result [expr {$result + $number}]
}
</pre>
==== Умовний оператор ====
<pre>
if {якийсь вираз} {
    #якийсь код
}
</pre>
==== Процедури ====
Для декларації процедур використовують команду <code>proc</code>:
<pre>
proc ІД_процедури {аргументи} {
  #якийсь код
}
</pre>
== Приклади коду ==
=== Hello, world! ===
<pre>
puts "Hello, world!"
</pre>
=== Факторіал ===
<pre>proc ! x {expr {$x<2? 1: $x*[! [incr x -1]]}}</pre>
=== Числа Фібоначчі ===
<pre>
set fib1 0
set fib2 1
set s ""
for {set i 0} {$i < 16} {incr i} {
    lassign [list $fib2 [incr fib2 $fib1]] fib1 fib2
    append s "$fib1, "
}
puts "$s..."
</pre>
== Див. також ==
* [[Lisp]]
== Посилання ==
* [http://www.tcl.tk/ Офіційна™ хоумпага]
* [http://progopedia.ru/language/tcl/ Стаття про Тікль у енциклопедії мов програмування]
{{Айті}}

Версія за 04:24, 20 листопада 2022