Съдържание

# 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. Ако документът е празен, ще бъде вмъкната и изпълнена примерна програма.

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

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

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

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

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

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

The “magic wand” icon sets 2-page layout for program editing, expands and converts to uppercase the abbreviated, lowercase Logo commands in the Writer document. Change the language of the document (LibreOffice - Preferences Tools - Options - Languages and Locales - General - Western) and click on this icon to translate the Logo program to the selected language.

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

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

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

     FORWARD 200 LEFT 89

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

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

Turtle shape of LibreLogo is a normal fixed size drawing object. You can position and rotate it on standard way, too, using the mouse and the Rotate icon of the Drawing Object Properties toolbar. Modify Line Thickness, Line Color and Area Color settings of the turtle shape to set PENSIZE, PENCOLOR and FILLCOLOR attributes of 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 ; line thickness is 100 points
     PENSIZE ANY ; equivalent of 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