Зміст

# 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. У порожній документ буде вставлена та виконана програма-приклад.

Натисніть на кнопку “STOP” для зупинки виконання програми.

## Домівка

Клацніть піктограму “HOME”, аби обнулити розташування та параметри черепашки.

## Очистити екран

Клацніть піктограму “CLEARSCREEN” для вилучення накреслених об'єктів із документа.

## Програмний редактор/Підсвічування синтаксису/Переклад

Піктограма "чарівна паличка" задає 2-сторінковий макет для редагування програми, розгортає і перетворює на великі літери скорочені малі літери команд Logo в документі Writer. Змініть мову документа (LibreOffice - Параметри Засоби - Параметри - Мови і місцеві налаштування - Загальне - Західні) і натисніть на цю піктограму, щоб перекласти логотип програми обраною мовою.

## Командний рядок

Натисніть Enter у командному рядку для виконання його вмісту. Щоб зупинити програму, використовуйте піктограму “STOP”.

Утримуйте Enter, щоб повторювати виконання командного рядка, наприклад, для наступної послідовності команд:

     FORWARD 200 LEFT 89

Щоб скинути командний рядок, тричі клацніть на ньому або натисніть Command Ctrl+A для виділення попередніх команд, і введіть нові команди.

## Графічний інтерфейс користувача для основних налаштувань черепахи

Фігура черепахи у LibreLogo - це звичайний об'єкт малювання фіксованого розміру. Ви можете позиціонувати і обертати її у звичайний спосіб за допомогою миші та піктограми "Обертання" на панелі властивостей об'єкта малювання. Змініть значення параметрів Товщина лінії, Колір лінії та Колір області фігури черепахи, щоб встановити атрибути PENSIZE, PENCOLOR та FILLCOLOR у LibreLogo.

## Редагування програми

Рисунки та програми LibreLogo використовують один і той самий документ Writer. Полотно LibreLogo знаходиться на першій сторінці документа Writer. Ви можете вставити розрив сторінки перед програмою LibreLogo та встановити масштаб сторінки за допомогою “чарівної палички” з панелі інструментів Logo, а також змінити розмір шрифту для зручного перегляду 2-сторінкової розмітки в процесі програмування на LibreLogo: ліва (перша) сторінка це полотно, а права (друга) сторінка це редактор LibreLogo програми.

# Мова програмування LibreLogo

LibreLogo — мова програмування, подібна до Logo, яка легко локалізується та перекладена на декілька мов мовними громадами LibreOffice. Має зворотну сумісність зі старими системами Logo у випадку простих програм Logo, що використовуються в освіті.

     TO трикутник :розмір
     REPEAT 3 [
       FORWARD :розмір
       LEFT 120
     ]
     END

     трикутник 10 трикутник 100 трикутник 200

## Відмінності від мови програмування Logo

- Елементи списку відокремлюються комами: POSITION [0, 0]

- Блоки та списки програм відрізняються

- - Блоки програми відділяються пробілом або новим рядком у дужках: REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - Спискам потрібні близькі дужки: POSITION [0, 0], а не POSITION [ 0, 0 ]

- Оголошення 1-рядкової функції не підтримуються (TO та END потребують нових рядків).

## Інші особливості LibreLogo

- Двокрапка - необов'язкова перед назвами змінних.

       TO трикутник розмір
         REPEAT 3 [ FORWARD розмір 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 ; рух вперед 10pt (1pt = 1/72 inch)
     FORWARD 10pt ; дивися вище
     FORWARD 0.5in ; рух вперед 0.5 inch (1 inch = 2.54 cm)
     FORWARD 1" ; дивися вище
     FD 1mm
     FD 1cm

### BACK (bk)

     BACK 10 ; рух назад 10pt

### 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 = крапки є квадратами (довжини та відстані відносні до PENSIZE)

     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-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-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 ; намалювати коло (діаметр = 100pt)

### 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 ; намалювати квадрат (розмір = 100pt)

### RECTANGLE

     RECTANGLE [50, 100] ; намалювати прямокутник (50×100pt)
     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 ; встановити розмір шрифту 12pt

### 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 дерево розташоване
       PENUP POSITION розташоване HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; деревоподібне групування фігури
     END

     PICTURE [ дерево [230, 400] дерево [300, 400] ] ; згруповані фігури у згрупованій фігурі

### Початок створення нових фігур

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

### Збереження SVG зображень

     PICTURE “приклад.svg” [ CIRCLE 5 ] ; зберегти зображення SVG як файл зображення у теку користувача
     PICTURE “Стільниця/приклад.svg” [ FORWARD 100 CIRCLE 5 ] ; як зазначено вище, з відносним шляхом
     PICTURE “/home/користувач/приклад.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 секунди SVG анімація перезапускатиметься у SMIL-сумісних браузерах

### Узгодженість по лівій межі

Використовуйте PICTURE щоб зберегти узгодженість положень та ліній фігур по лівій межі документа Writer:

     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 ; малювати кола на кожній 2-й позиції
     ]

## Умови

### IF

     ; IF умова [ істинний блок ]
     ; IF умова [ істинний блок ] [ неправдивий блок ]

     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 або 9” ]
     IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 або 9” ] ; еквівалентно попередньому

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

### TO, END

Нове слово (або процедура).

     TO трикутник
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ трикутник PENUP POSITION ANY PENDOWN ]

### OUTPUT

Повертає значення функції.

     TO випадкова_літера
       OUTPUT RANDOM “йцукенгшщзхїфівапролджєґячсмитьбю”
     END

     PRINT випадкова_літера + випадкова_літера + випадкова_літера ; друкувати 3-буквену послідовність випадкових символів

### STOP

Повернення з процедури.

     TO приклад число
       IF число < 0 [ STOP ]
       PRINT SQRT число ; надрукувати квадратний корінь
     ]

     приклад 100
     приклад -1 ; без виводу та помилки
     приклад 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 про
     про = “LibreLogo”

     TO приклад
       PRINT про
       GLOBAL про ; коли ми хочемо додати нове значення
       про = “нове значення глобальної змінної”
     END

     приклад
     PRINT про

## Функції

### 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, 9, 6}, симетрична розбіжність

### RANGE

     ; Формування списку в стилі Python
     PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; print [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, 2, 3, 5]

### TUPLE

Перетворення на Python кортеж (список що не піддається змінам)

     PRINT TUPLE [4, 5]

### SORTED

Повертає відсортований список.

     PRINT SORTED [5, 1, 3, 4] ; надрукує [1, 3, 4, 5]

### SUB

Заміняє послідовності символів з використанням regex (регулярний вираз) шаблонів.

     PRINT SUB (“т”, “Т”, “текст”) ; надрукує “ТексТ”, замінивши “т” на “Т”
     PRINT SUB (“(.)”, “\\1\\1”, “текст”) ; надрукує “ттеекксстт”, подвоївши кожен символ

### SEARCH

Пошук шаблонних послідовностей символів із використанням шаблонів регулярних виразів.

     IF SEARCH (“\с”, "слово") [ 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