Tcl

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку
222.gif

Увага! У статті надто мало зображень!
Додайте їх! Якби ми хотіли почитати, ми б пішли на Вікіпедію!

{{#if: | [[Категорія:{{{cat}}}]] }}

Помилка створення мініатюри: Не вдалося зберегти мініатюру до місця призначення

Тут мало лулзів!
Ця стаття (ще) погана, бо їй бракує лулзів. Ти можеш її покращити, якщо їх додаси.

{{#if: | [[Категорія:{{{cat}}}]] }}


Помилка створення мініатюри: Не вдалося зберегти мініатюру до місця призначення

Tcl Tool Command Language», тікль, ті-сі-ель, Tcl/Tk)імперативна інтерпретована скриптова мова програмування. Майже завжди використовується разом з тулкітом Tk.

Короткий огляд[ред.]

Синтаксис[ред.]

Tcl має другий за дурістю синтаксис (після Lisp) серед усіх мов програмування. Уся їбонутість синтаксису проявляється у черезмірній фігурно-дужко-філії. Середньостатистична програма на Tcl складається з опису алгоритму на 5% і фігурних дужок на 95%. Найпростіше синтаксис Тікля можна описати так:

command arg1 arg2

У читача може виникнути питання: «А де ж фігурні дужки?», відповідь на це питання - дужки використовуються для групування елементів синтаксису, тобто не так як в Сі, а зовсім йобнуто:

set liczba [gets stdin]
while { $liczba != 42 } { puts $liczba; set liczba [gets stdin] }

Фішки[ред.]

Однією з найбільших фішок Тікля є підтримка метапрограмування, що безумовно дуже доставляє. Також, так як мова - інтерпретована, вона підтримує динамічні структура даних: асоціативні масиви і інше. Також є всякі ніштяки типу програмування у функціональному стилі і інше. Все це дуже виділяє мову серед інших.

Інші елементи синтаксису[ред.]

Символ Його значення Приклад
$ Підстановка значення змінної puts $x
# Коментар до кінця рядка. Коментарі ігноруються під час транслювання коду set x 12 #це коментарій
[] Підстановка результату виконання команди у квадратних дужках set x [gets stdin] #присвоїть змінній х значення введене з клавіатури
"" Групування елементів з підстановкою значень змінних puts "b = $b"
{} Як вже було сказано, групування елементів. puts {Hello, world!!!}
\ Цитування керуючого символа puts "\$" #виведе "$"

Мани[ред.]

Присвоєння змінній значення[ред.]

Для цього використовується не знак "=", а команда set

set x 12 #присвоїть змінній x значення 12

Ввід/вивід[ред.]

Для виводу використовується команда puts:

puts "SHIT" #отаман вочевидячки каже, що результатом виконання цієї команди буде вивід на екран слова Shit

А для вводу використовується команда gets:

set x [gets stdin] #присовїть змінній х значення введене з клавіатури

Цикли[ред.]

Як і будь-якій мові у Тіклі є 3 види циклів: for, foreach і while:

while {Якийсь вираз}{
    команди, що будуть виконуватися поки вираз у дужках істинний
}
for {set i 0} {$i < 16} {incr i} {
    #якийсь код
}
foreach number $numbers {
    set result [expr {$result + $number}]
}

Умовний оператор[ред.]

if {якийсь вираз} {
    #якийсь код
}

Процедури[ред.]

Для декларації процедур використовують команду proc:

proc ІД_процедури {аргументи} {
   #якийсь код
}

Приклади коду[ред.]

Hello, world![ред.]

puts "Hello, world!"

Факторіал[ред.]

proc ! x {expr {$x<2? 1: $x*[! [incr x -1]]}}

Числа Фібоначчі[ред.]

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..."

Література[ред.]

Див. також[ред.]

Посилання[ред.]

{{#if: |}} {{#if:Ассемблер · Сі · C++ · Lisp · Haskell · Java · Javascript · Поцкаль · Perl · PHP · Python · Ruby · Tcl · Visual Basic | {{#if:Промислові |}} {{#if:Programming.jpg|}} }} {{#if:HQ9+ · INTERCAL · Brainfuck · Befunge · Malbolge · Piet · Spoon · Whitespace | {{#if:Езотеричні |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: |}}