Съдържание

# LibreLogo

LibreLogo е проста среда за програмиране с костенуркова векторна графика, подобна на Logo, за преподаване на програмиране и текстообработка, издателска дейност и графичен дизайн. Вижте http://www.numbertext.org/logo/librelogo.pdf.

## Лента с инструменти LibreLogo

Лентата с инструменти LibreLogo (Изглед - Ленти с инструменти - Logo) съдържа икони за движение на костенурката, стартиране и спиране на програмата, инициализиране, изчистване на екрана, открояване и превеждане на синтаксиса, както и поле за въвеждане (команден ред).

## Икони за придвижване на костенурката

Те са еквивалентни на командите на Logo „FORWARD 10“, „BACK 10“, „LEFT 15“ и RIGHT 15“. Щракването върху някоя от тях освен това фокусира костенурката, превъртайки страницата до нейната позиция.

## Стартиране програма на Logo

Щракнете върху иконата „Стартиране програма на Logo“, за да се изпълни целият (или само избраният) текст в документа на Writer като програма на LibreLogo. Ако документът е празен, ще бъде вмъкната и изпълнена примерна програма.

Щракнете върху иконата „Стоп“, за да спрете изпълнението на програмата.

## Инициализиране

Щракнете върху иконата „Инициализиране“, за да нулирате позицията и настройките на костенурката.

## Изчистване на екрана

Щракнете върху иконата „Изчистване на екрана“, за да премахнете графичните обекти от документа.

## Редактиране на програма/открояване на синтаксиса/превеждане

Иконата „вълшебна пръчка“ задава оформление с две страници за редактиране на програма, после разгръща и преобразува в главни букви командите на Logo в документа на Writer. Променете езика на документа (LibreOffice - Preferences Инструменти - Настройки - Езици и локали - Общи - Западни) и щракнете върху тази икона, за да се преведе програмата на Logo към избрания език.

## Команден ред

Натиснете Enter в командния ред, за да се изпълни съдържанието му. За да спрете програмата, използвайте иконата „Стоп“.

Задръжте Enter за повтаряне на командния ред, например с последователност от команди като долната:

     FORWARD 200 LEFT 89

За да нулирате командния ред, щракнете трикратно в него или натиснете Command Ctrl+A, за да изберете предишните команди, и въведете новите команди.

## Графичен потребителски интерфейс на основните настройки на костенурката

Фигурата на костенурката в LibreLogo е обикновен графичен обект с фиксиран размер. Можете да я позиционирате и въртите по стандартния начин, с мишката и с иконата „Завъртане“ в лентата с инструменти „Свойства на графичен обект“. Променяйте настройките „Дебелина на линия“, „Цвят на линия“ и „Цвят на област“ на фигурата на костенурката, за да задавате атрибутите PENSIZE, PENCOLOR и FILLCOLOR на LibreLogo.

## Редактиране на програма

Рисунките и програмите на LibreLogo споделят един и същ документ на Writer. Платното на LibreLogo е първата страница на документа. Можете да вмъкнете знак за нова страница преди програмите на LibreLogo и да зададете увеличение с иконата „вълшебна пръчка“ от лентата Logo, както и да промените размера на шрифта, за да получите удобно оформление от две страници: лявата (първата) страница е платното, а дясната (втората) е редакторът на програми.

# Език за програмиране LibreLogo

LibreLogo е лесен за локализиране програмен език, подобен на Logo, локализиран на няколко езика от езиковите общности на LibreOffice. Той е съвместим с по-старите системи на Logo що се отнася до простите програми, използвани за обучение.

     TO triangle :size
     REPEAT 3 [
       FORWARD :size
       LEFT 120
     ]
     END

     triangle 10 triangle 100 triangle 200

## Разлики с програмния език Logo

- Елементите на списък се разделят със запетая: POSITION [0, 0]

- Програмните блокове и списъците се различават

- - Програмните блокове изискват интервал или нов ред при скобите: REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - Списъците изискват долепени скоби: POSITION [0, 0] вместо POSITION [ 0, 0 ]

- Не се поддържат едноредови декларации на функции (TO и END изискват нов ред).

## Други особености на LibreLogo

- Двоеточието пред име на променлива не е задължително.

       TO triangle size
         REPEAT 3 [ FORWARD size LEFT 120 ]
       END

- За низовете се допускат също типографски кавички и синтаксисът на Python.

       PRINT "дума ; оригинален синтаксис на Logo
       PRINT “Произволен текст.” ; типографски кавички, Writer
       PRINT 'Произволен текст.' ; синтаксис на Python

- Работа със списъци и низове като в Python

       PRINT “текст”[2] ; print “к”
       PRINT “текст”[1:3] ; print “ек”

- Цикъл FOR като в Python

- Обявяване на променливи като в Python:

       x = 15
       PRINT x

- Няма допълнителни функции за заявки:

       PRINT FILLCOLOR
       p = POSITION
       PRINT p
       REPEAT 10 [ POSITION ANY POSITION p ]

- Алтернативен синтаксис за скоби в обръщения към функции

       TO star size color
       FILLCOLOR color
       REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
       FILL
       END

       star 100 “red”
       star(100, “green”)
       star(100, “blue”)

# Команди на LibreLogo

## Основен синтаксис

### Зачитане на регистъра

Командите и имената на цветове са нечувствителни към регистъра:

     PRINT “Здравей, свят!”
     print “Здравей отново, свят!”

Имената на променливи са чувствителни към регистъра:

     a = 5
     A = 7
     PRINT a
     PRINT A

### Програмни редове

Редовете от програма на LibreLogo са абзаци в документа на Writer. Един програмен ред може да съдържа няколко команди:

     PRINT “Здравей, свят!” PRINT “LibreLogo”

### Коментари

Всичко след знак точка и запетая до края на реда (абзаца) се счита за коментар:

     ; това са коментари
     PRINT 5 * 5 ; още коментари

### Разделяне програмен ред на няколко абзаца

Възможно е програмен ред да се раздели на няколко абзаца, като в краищата им се поставя знак тилда:

     PRINT “Това е много дълго ” + ~
           “съобщение за грешка”

## Придвижване на костенурката

### FORWARD (fd)

     FORWARD 10 ; придвижване напред с 10пкт (1пкт = 1/72 инча = 0,35мм)
     FORWARD 10pt ; виж по-горе
     FORWARD 0.5in ; придвижване напред с 0,5 инча (1 инч = 2,54 см)
     FORWARD 1" ; виж по-горе
     FD 1mm
     FD 1cm

### BACK (bk)

     BACK 10 ; придвижване назад с 10пкт

### LEFT (lt)

     LEFT 90 ; завъртане срещу часовниковата стрелка на 90°
     LEFT 90° ; виж по-горе
     LT 3h ; виж по-горе (посока по часовника)
     LT any ; завъртане в случайна посока

### RIGHT (rt)

     RIGHT 90 ; завъртане по часовниковата стрелка на 90°

### PENUP (pu)

     PENUP ; костенурката няма да оставя следа

### PENDOWN (pd)

     PENDOWN ; костенурката ще оставя следа

### POSITION (pos)

     POSITION [0, 0] ; завъртане и придвижване към горния ляв ъгъл
     POSITION PAGESIZE ; завъртане и придвижване към долния десен ъгъл
     POSITION [PAGESIZE[0], 0] ; завъртане и придвижване към горния десен ъгъл
     POSITION ANY ; завъртане и придвижване към случайна позиция

### HEADING (seth)

     HEADING 0 ; обръщане на север
     HEADING 12h ; същото
     HEADING [0, 0] ; завъртане към горния ляв ъгъл
     HEADING ANY ; завъртане в случайна посока

## Други команди за костенурката

### HIDETURTLE (ht)

     HIDETURTLE ; скрива костенурката (до команда showturtle)

### SHOWTURTLE (st)

     SHOWTURTLE ; показва костенурката

### HOME

     HOME ; връща началната позиция на костенурката

### CLEARSCREEN (cs)

     CLEARSCREEN ; премахва графичните обекти от документа

### FILL и CLOSE

     FILL ; затваря и запълва текущата фигура или точки
     CLOSE ; затваря текущата фигура или съединява точките

Пример: запълване на равностранен триъгълник:

     FORWARD 50 LEFT 120 FORWARD 50 FILL

Пример: чертане на равностранен триъгълник:

     FORWARD 50 LEFT 120 FORWARD 50 CLOSE

## Настройки на писеца

### PENSIZE (ps)

     PENSIZE 100 ; дебелина на линията 100 пункта
     PENSIZE ANY ; същото като PENSIZE RANDOM 10

### PENCOLOR/PENCOLOUR (pc)

     PENCOLOR “red” ; червен цвят на писеца (по име, вижте константите за цветовете)
     PENCOLOR [255, 255, 0] ; жълт цвят (списък с компоненти RGB)
     PENCOLOR 0xffff00 ; жълт цвят (шестнайсетичен код)
     PENCOLOR 0 ; черен цвят (0x000000)
     PENCOLOR ANY ; случаен цвят
     PENCOLOR [5] ; червен цвят (по идентификатор, вижте константите за цветовете)
     PENCOLOR “invisible” ; невидим цвят за фигури без видимо очертание
     PENCOLOR “~red” ; случаен червен цвят

### PENTRANSPARENCY

     PENTRANSPARENCY 80 ; задава прозрачност от 80% за цвета на писеца

### PENCAP/LINECAP

     PENCAP “none” ; без крайчета на линиите (по подразбиране)
     PENCAP “round” ; заоблени крайчета
     PENCAP “square” ; квадратни крайчета

### PENJOINT/LINEJOINT

     PENJOINT “rounded” ; заоблени съединения на линиите (по подразбиране)
     PENJOINT “miter” ; остри съединения
     PENJOINT “bevel” ; скосени съединения
     PENJOINT “none” ; без съединения

### PENSTYLE

     PENSTYLE “solid” ; непрекъсната линия (по подразбиране)
     PENSTYLE “dotted” ; пунктирана линия
     PENSTYLE “dashed” ; прекъсната линия

     ; шарка от точки и тирета, зададена със следните аргументи:
     ; – брой последователни точки
     ; – дължина на точката
     ; – брой последователни тирета
     ; – дължина на тирето
     ; – разстояние между тиретата/точките
     ; – тип (незадължителен):
     ;   0 = точките са правоъгълни (по подразбиране)
     ;   2 = точките са квадратни (дължините и разстоянията са относителни спрямо размера на писеца)

     PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## Настройки за запълване

### FILLCOLOR/FILLCOLOUR (fc)

     FILLCOLOR “blue” ; запълване със син цвят, виж и PENCOLOR
     FILLCOLOR “invisible” CIRCLE 10 ; незапълнен кръг
     FILLCOLOR [“blue”, “red”] ; преливане между червено и синьо
     FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; между бяло и оранжево
     FILLCOLOR [“blue”, “red”, 1, 0, 0] ; осев градиент (с настройки за завъртане и прагове), допустими стойности: 0-5 = линеен, осев, радиален, елиптичен, квадратен или правоъгълен градиент
     FILLCOLOR [“red”, “blue”, 0, 90, 20] ; линеен с праг от 20%, завъртян на 90° спрямо посоката на костенурката
     FILLCOLOR [“red”, 'blue”, 0, 90, 20, 0, 0, 200, 50] ; интензивност от 200% до 50%
     FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; радиален градиент със случайни цветове и позиция на центъра 50% по хоризонтала и вертикала

### FILLTRANSPARENCY

     FILLTRANSPARENCY 80 ; 80% прозрачност за текущия цвят на запълване
     FILLTRANSPARENCY [80] ; линеен градиент на прозрачността от 80% до 0%
     FILLTRANSPARENCY [80, 20] ; линеен градиент на прозрачността от 80% до 20%
     FILLTRANSPARENCY [80, 20, 1, 90] ; осев градиент на прозрачността под ъгъл 90° спрямо посоката на костенурката
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; радиален градиент на прозрачността от 80% отвън до 20% отвътре с праг от 20% и позиция на центъра 50% по хоризонтала и вертикала

### FILLSTYLE

     FILLSTYLE 0 ; запълване без щриховка (по подразбиране)
     FILLSTYLE 1 ; черни единични щрихи (хоризонтални)
     FILLSTYLE 2 ; черни единични щрихи (45 градуса)
     FILLSTYLE 3 ; черни единични щрихи (45 градуса)
     FILLSTYLE 4 ; черни единични щрихи (вертикални)
     FILLSTYLE 5 ; червени пресечени щрихи (45 градуса)
     FILLSTYLE 6 ; червени пресечени щрихи (0 градуса)
     FILLSTYLE 7 ; сини пресечени щрихи (45 градуса)
     FILLSTYLE 8 ; сини пресечени щрихи (0 градуса)
     FILLSTYLE 9 ; сини тройно пресечени щрихи
     FILLSTYLE 10 ; дебели единични черни щрихи (45 градуса)

     ; потребителска щриховка, зададена чрез следните аргументи:
     ; – стил (1 = единична, 2 = двойна, 3 = тройна щриховка)
     ; – цвят
     ; – стъпка
     ; – наклон

     FILLSTYLE [2, “green”, 3pt, 15°] ; зелени пресечени щрихи (15 градуса)

## Графични обекти

### CIRCLE

     CIRCLE 100 ; чертае кръг (диаметър = 100пкт)

### ELLIPSE

     ELLIPSE [50, 100] ; чертае елипса с диаметри 50 и 100
     ELLIPSE [50, 100, 2h, 12h] ; чертае елиптичен сектор (от посока по часовника 2 ч. до 12 ч.)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; чертае елиптичен сегмент
     ELLIPSE [50, 100, 2h, 12h, 3]  ; чертае дъга от елипса

### SQUARE

     SQUARE 100 ; чертае квадрат (размер = 100пкт)

### RECTANGLE

     RECTANGLE [50, 100] ; чертае правоъгълник (50×100пкт)
     RECTANGLE [50, 100, 10] ; чертае правоъгълник със заоблени ъгли

### POINT

     POINT ; чертае точка с размера и цвета на писеца

CLOSE може да съедини последните точки, а FILL – да запълни фигура, зададена чрез точки. Лесно е например да се нарисува „плоска“ звезда, започвайки от центъра й:

     PENUP
     REPEAT 5 [
       FORWARD 80
       POINT
       BACK 80
       RIGHT 36
       FORWARD 50
       POINT
       BACK 50
       RIGHT 120
     ] FILL

### LABEL

     LABEL “текст” ; отпечатва текст в позицията на костенурката
     LABEL 'текст' ; виж по-горе
     LABEL "текст ; виж по-горе (само за единични думи)

### TEXT

     CIRCLE 10 TEXT “текст” ; задава текста на текущия графичен обект

## Настройки на шрифта

### FONTCOLOR/FONTCOLOUR

     FONTCOLOR “green” ; задава цвета на шрифта

### FONTFAMILY

     FONTFAMILY “Linux Libertine G” ; задава шрифт (фамилия)
     FONTFAMILY “Linux Libertine G:smcp=1” ; задава и особеност на шрифта (малки главни букви)
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; малки главни букви + минускулни цифри

### FONTSIZE

     FONTSIZE 12 ; задава размер на шрифта 12пкт

### FONTWEIGHT

     FONTWEIGHT “bold” ; задава получер шрифт
     FONTWEIGHT “normal” ; задава нормално тегло

### FONTSTYLE

     FONTSTYLE “italic” ; задава курсивен вариант
     FONTSTYLE “normal” ; задава обикновен вариант

## PICTURE (pic)

PICTURE служи за

- групиране на фигури;

- започване на нова фигура;

- запазване на изображения във формат SVG и анимации във формат SVG/SMIL;

- поддържане на съгласувани позиции и фигури в левия край на платното.

### Групиране на фигури

     ; PICTURE [ команди_на_LibreLogo ]
     PICTURE [ FORWARD 100 CIRCLE 100 ] ; групирана дървовидна фигура

Вижте също „Групиране“ в помощта на LibreOffice Writer.

     TO tree location
       PENUP POSITION location HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; дървовидна групирана фигура
     END

     PICTURE [ tree [230, 400] tree [300, 400] ] ; групирани фигури в групирана фигура

### Започване на нова фигура

     PICTURE ; започва нова фигура
     FORWARD 10 PICTURE FORWARD 10 ; две фигури

### Запазване на изображения във формат SVG

     PICTURE “пример.svg” [ CIRCLE 5 ] ; запазва рисунката като SVG файл в папката на потребителя
     PICTURE “Desktop/пример.svg” [ FORWARD 100 CIRCLE 5 ] ; същото, с относителен път
     PICTURE “/home/user/пример.svg” [ CIRCLE 5 ] ; абсолютен път за Unix/Linux
     PICTURE “C:\пример.svg” [ CIRCLE 5 ] ; абсолютен път за Windows

### Запазване на анимации във формат SVG/SMIL (рисунки с команди SLEEP)

     PICTURE “анимация.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; запазване като анимация SVG/SMIL (виж също SLEEP)
     PICTURE “анимация2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; същото, но със SLEEP след последния обект за циклично повторение: след 2 секунди анимацията се рестартира в браузърите, съвместими с SMIL

### Съгласуване в левия край на платното

Използвайте PICTURE, за да поддържате взаимното разположение на позиции и фигури в левия край на платното:

     PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]

## Цикли

### REPEAT

     ; REPEAT брой [ команди ]

     REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; повтаряне 10 пъти

     ; броят не е задължителен

     REPEAT [ POSITION ANY ] ; безкраен цикъл

### REPCOUNT

Брояч на цикъла (също и в циклите с FOR и WHILE).

     REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]

### FOR IN

Цикъл по елементите на списък:

     FOR i IN [1, 5, 7, 9, 11] [
       FORWARD i
       LEFT 90
     ]

Цикъл по знаците в знакова последователност:

     FOR i IN “текст” [
       LABEL i
       FORWARD 10
     ]

### WHILE

     WHILE TRUE [ POSITION ANY ] ; безкраен цикъл
     WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; като REPEAT 10 [ ... ]

### BREAK

Спира цикъла.

     REPEAT [ ; безкраен цикъл
       POSITION ANY
       IF REPCOUNT = 100 [ BREAK ]  ; еквивалентно на REPEAT 100 [ ... ]
     ]

### CONTINUE

Преход към следващата итерация на цикъла.

     REPEAT 100 [
       POSITION ANY
       IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; чертае кръгове на всяка втора позиция
     ]

## Условия

### IF

     ; IF условия [ блок за true ]
     ; IF условие [ блок за true ] [ блок за false ]

     IF a < 10 [ PRINT “Малко” ]
     IF a < 10 [ PRINT “Малко” ] [ PRINT “Голямо” ]

### AND, OR, NOT

Логически операции.

     IF a < 10 AND NOT a = 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ]
     IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ] ; същото като горното

## Подпрограми

### TO, END

Нова дума (или процедура).

     TO triangle
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]

### OUTPUT

Резултатна стойност на функцията.

     TO randomletter
       OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
     END

     PRINT randomletter + randomletter + randomletter ; отпечатва случайна последователност от три букви

### STOP

Връща управлението от процедурата.

     TO example number
       IF number < 0 [ STOP ]
       PRINT SQRT number ; отпечатва квадратния корен
     ]

     example 100
     example -1 ; не се отпечатва нищо, няма грешка
     example 25

## Променливи по подразбиране

### ANY

Подразбирана случайна стойност за цветове и т.н.

     PENCOLOR ANY ; случаен цвят на писеца

### TRUE

Логическа стойност.

     WHILE TRUE [ POSITION ANY ] ; безкраен цикъл
     PRINT TRUE ; отпечатва true

### FALSE

Логическа стойност.

     WHILE NOT FALSE [ POSITION ANY ] ; безкраен цикъл
     PRINT FALSE ; отпечатва false

### PAGESIZE

     PRINT PAGESIZE ; отпечатва като списък размера на страницата в пунктове, например [595.30, 841.89]

### PI/π

     PRINT PI ; отпечатва 3.14159265359

## Вход/изход

### PRINT

     PRINT “текст” ; отпечатва “текст” в диалогов прозорец
     PRINT 5 + 10 ; отпечатва 15

### INPUT

     PRINT INPUT “Входна стойност?” ; показва подкана и приема низ чрез диалогов прозорец
     PRINT FLOAT (INPUT “Първо число?”) + FLOAT (INPUT “Второ число?”) ; прост калкулатор

## SLEEP

     SLEEP 1000 ; изчаква 1000 мс (1 с)

## GLOBAL

Задава глобални променливи, използвани в процедурите.

     GLOBAL about
     about = “LibreLogo”

     TO example
       PRINT about
       GLOBAL about ; когато искаме да добавим нова стойност
       about = “нова стойност за глобалната променлива”
     END

     example
     PRINT about

## Функции

### RANDOM

     PRINT RANDOM 100 ; случайно число с плаваща запетая (0 <= x < 100)
     PRINT RANDOM “текст” ; случайна буква от “текст”
     PRINT RANDOM [1, 2] ; случаен елемент от списъка (1 или 2)

### INT

     PRINT INT 3.8 ; отпечатва 3 (цялата част на 3,8)
     PRINT INT RANDOM 100 ; случайно цяло число (0 <= x < 100)
     PRINT INT “7” ; преобразува параметър – низ в цяло число

### FLOAT

     ; преобразува параметъра – низ в число с плаваща запетая
     PRINT 2 * FLOAT “5.5” ; отпечатва 11.0

### STR

     ; преобразува числовия параметър в низ
     PRINT “Резултат: ” + STR 5 ; отпечатва “Резултат: 5”
     PRINT 10 * STR 5 ; отпечатва 5555555555

### SQRT

     PRINT SQRT 100 ; отпечатва 10, квадратния корен на 100

### SIN

     PRINT SIN 90 * PI/180 ; отпечатва 1.0 (синус от 90° в радиани)

### COS

     PRINT COS 0 * PI/180 ; отпечатва 1.0 (косинус от 0° в радиани)

### LOG10

     PRINT LOG10 100 ; отпечатва 2.0 (десетичен логаритъм от 100)

### ROUND

     PRINT ROUND 3.8 ; отпечатва 4 (закръглено 3,8)
     PRINT ROUND RANDOM 100 ; случайно цяло число (0 <= x <= 100)

### ABS

     PRINT ABS -10 ; отпечатва 10, абсолютната стойност на -10

### COUNT

     PRINT COUNT “текст” ; отпечатва 5, броя знаци в “текст”
     PRINT COUNT [1, 2, 3] ; отпечатва 3, дължината на списъка

### SET

     ; Преобразува списък в множество на Python
     PRINT SET [4, 5, 6, 6] ; отпечатва {4, 5, 6}
     PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; отпечатва {1, 4, 5, 6, 9}, обединение
     PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ; отпечатва {4}, сечение
     PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; отпечатва {5, 6}, разлика
     PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; отпечатва {1, 5, 6, 9}, симетрична разлика

### RANGE

     ; Генериране на списъци като в Python
     PRINT LIST RANGE 10 ; отпечатва [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; отпечатва [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; отпечатва [3, 6, 9]

     FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
       FORWARD i
       LEFT 90
     ]

### LIST

     ; премахва повтарящите се елементи от списък чрез преобразуване между множество и списък
     PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; отпечатва [1, 3, 5, 2]

### TUPLE

Преобразуване към n-торка на Python (константен списък)

     PRINT TUPLE [4, 5]

### SORTED

Връща сортиран списък.

     PRINT SORTED [5, 1, 3, 4] ; отпечатва [1, 3, 4, 5]

### SUB

Замества поредица от знаци чрез регулярен израз.

     PRINT SUB (“т”, “Т”, “текст”) ; отпечатва “Текст”, заменяйки “т” с “Т”
     PRINT SUB (“(.)”, “\\1\\1”, “текст”) ; отпечатва “ттеекксстт”, удвоявайки всеки знак

### SEARCH

Претърсва знакова последователност чрез регулярен израз.

     IF SEARCH (“\w”, "word") [ PRINT “В думата има буква.” ]

### FINDALL

Намира всички знакови последователности във входния низ, които отговарят на дадения регулярен израз.

     PRINT FINDALL(“\w+”, “Кучета, котки.”) ; отпечатва [“Кучета”, “котки”], списък от думите.

### MIN

     PRINT MIN [1, 2, 3] ; отпечатва 1, най-малкия елемент на списъка

### MAX

     PRINT MAX [1, 2, 3] ; отпечатва 3, най-големия елемент от списъка

## Константи за цветове

     PENCOLOR “SILVER” ; задаваме по име
     PENCOLOR [1] ; задаване по идентификатори
     PENCOLOR “~SILVER” ; случаен сивкав цвят

Идентификатор | Име
--- | ---
0 | BLACK
1 | SILVER
2 | GRAY/GREY
3 | WHITE
4 | MAROON
5 | RED
6 | PURPLE
7 | FUCHSIA/MAGENTA
8 | GREEN
9 | LIME
10 | OLIVE
11 | YELLOW
12 | NAVY
13 | BLUE
14 | TEAL
15 | AQUA
16 | PINK
17 | TOMATO
18 | ORANGE
19 | GOLD
20 | VIOLET
21 | SKYBLUE
22 | CHOCOLATE
23 | BROWN
24 | INVISIBLE