Indhold

# LibreLogo

LibreLogo er et simpel Logo-lignende programmeringsmiljø med skildpadde-vektorgrafik til undervisning og programmering (programmer og tekstbehandling), DTP og grafisk design. Se http://www.numbertext.org/logo/librelogo.pdf.

## LibreLogo værktøjslinje

Værktøjslinjen LibreLogo (Vis ▸ Værktøjslinjer ▸ Logo) indeholder ikoner for skildpaddebevægelser, programstart, programstop, hjem, nulstil skærm, programredigering/syntaksfremhævning/oversættelse og et indtastningsfelt (kommandolinje).

## Ikoner til skildpaddebevægelser

Ikonerne svarer til Logo-kommandoerne “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15”. Når du klikker på et af disse ikoner, vil markøren fokusere på skildpadden og siden vil rulle til dens placering.

## Start Logo-program

Klik på ikonet "Start Logo-program" for at udføre teksten (eller kun den markerede tekst) i Writer-dokumentet som et LibreLogo-program. I et tomt dokument vil et eksempel på et program blive indsat og udført.

Klik på ikonet "stop" for at stoppe programmet.

## Hjem

Vælg ikonet "hjem" for at nulstille skildpaddens position og indstillinger.

## Ryd skærm

Vælg ikonet "Ryd skærm" for at fjerne den tegnede genstand fra dokumentet.

## Programredigering/Syntaksfremhævning/Oversættelse

Ikonet "tryllestav" opstiller et 2-siders layout til programredigering, udvider og konverterer forkortede Logo-kommandoer med små bogstaver til store bogstaver i Writer-dokumentet. Du ændrer dokumentets sprog (LibreOffice ▸ Indstillinger Funktioner ▸ Indstillinger ▸ Sprog og sprogindstillinger ▸ Generelt ▸ Vestligt) og klikker på dette ikon for at oversætte Logo-programmet til det valgte sprog.

## Kommandolinje

Tryk Enter i kommandolinjen for at afvikle indholdet. For at stoppe programmet kan du klikke på “Stop”-

Hold Enter nede for at gentage kommandolinjen, for eksempel med følgende kommandosekvens:

     FORWARD 200 LEFT 89

For at nulstille kommandolinjen tripleklikker du på den. Du kan også trykke på Kommando Ctrl+A for at markere de foregående kommandoer, og derefter indtaste de nye kommandoer.

## Grafisk brugergrænseflade og grundlæggende skildpaddeindstillinger

Skildpadde-figuren i LibreLogo er et normalt tegneobjekt med fast størrelse. Du kan også placere og dreje det på almindelig måde, ved at bruge musen og ikonet Drej på værktøjslinjen Tegneobjektegenskaber. Du kan ændre indstillingerne for linjetykkelse, linjefarve og områdefarve for skildpaddefiguren for at sætte LibreLogo-attributterne for PENSIZE, PENCOLOR og FILLCOLOR.

## Programredigering

LibreLogo-tegninger og programmer bruger samme Writerdokument. LibreLogo-lærredet er på første side af dokumentet. Du kan med fordel indsætte et sideskift før LibreLogo-programmet, og indstille zoomfaktor og skriftstørrelse så du får vist de to sider ved siden af hinanden: Venstre (første) side er lærredet og anden (højre) side er programmet.

# Programmeringssproget LibreLogo

LibreLogo er et let oversætteligt logo-lignede programmeringssprog, som er oversat til adskillige sprog. Det er bagudkompatibelt med ældre Logo-systemer i tilfælde af simple Logo-programmer i undervisningssammenhænge.

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

     triangle 10 triangle 100 triangle 200

## Forskelle fra det oprindelige Logo programmeringssprog

- Indhold af lister er kommasepareret: POSITION [0, 0]

- Programblokke og lister er forskellige

- - Programblokke skal adskilles af et mellemrum eller linjeskift ved parenteserne: REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - Lister skal have lukkede parenteser (uden afstand): POSITION [0, 0], og ikke POSITION [ 0, 0 ]

- Funktionserklæringer på en enkelt linje understøttes ikke (TO og END skal have ny linje).

## Andre funktioner i LibreLogo

- Kolon er valgfri foran variabelnavne.

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

- Strengnotation understøtter også ortografisk og Python-syntaks.

       PRINT "ord ; original Logo-syntaks
       PRINT “Vilkårlig tekst.” ; retskrivning, Writer
       PRINT 'Vilkårlig tekst.' ; Python-syntaks

- Python liste- og strenghåndtering

       PRINT “text”[2] ; skriv “x”
       PRINT “text”[1:3] ; skriv “ex”

- Python-lignende FOR løkke

- Python-lignende erklæring af variable:

       x = 15
       PRINT x

- Der er ingen ekstra forespørgselsfunktioner:

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

- Alternativ brug af parenteser i funktionskald

       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-kommandoer

## Grundlæggende syntaks

### Følsomhed for små og store bogstaver

Kommandoer og farvekonstanter skelner ikke mellem små og store bogstaver:

     PRINT “Hej, verden!”
     print “Hej igen, verden!”

Variabelnavne skelner mellem små og store bogstaver:

     a = 5
     A = 7
     PRINT a
     PRINT A

### Programlinjer

Linjer i et LibreLogo-program er afsnit i Writer-dokumentet. En programlinje kan indeholde flere kommandoer:

     PRINT “Hello, World!” PRINT “LibreLogo”

### Kommentarer

Linjer eller linjedele er kommentarer fra et semikolon til slutningen af en linje (et afsnit):

     ; nogle kommentarer
     PRINT 5 * 5 ; nogle kommentarer

### Ombryd programlinjer til flere afsnit

Det er muligt at ombryde en programlinje til flere afsnit ved at bruge tegnet tilde (~) sidst på linjen:

     PRINT “Dette er en meget lang ” + ~
           “advarselsbesked”

## Skildpaddebevægelse

### FORWARD (fd) fremad

     FORWARD 10 ; flyt 10pt (1pt = 1/72 inch = 0.35 mm)
     FORWARD 10pt ; se ovenfor
     FORWARD 0.5in ; flyt forward 0.5 inch (1 inch = 2.54 cm) fremad
     FORWARD 1" ; se ovenfor
     FD 1mm
     FD 1cm

### BACK (bk) tilbage

     BACK 10 ; flyt 10pt tilbage

### LEFT (lt) venstre

     LEFT 90 ; drej 90 grader mod uret
     LEFT 90° ; se ovenfor
     LT 3h ; se ovenfor (på uret)
     LT any ; drej til en tilfældig position

### RIGHT (rt) højre

     RIGHT 90 ; drej 90 grader med uret

### PENUP (pu)

     PENUP ; skildpadden vil bevæge sig uden af tegne

### PENDOWN (pd)

     PENDOWN ; skildpadden bevæger sig og tegner

### POSITION (pos)

     POSITION [0, 0] ; drej og flyt til øverste, venstre hjørne
     POSITION PAGESIZE ; drej og flyt til nederste højre hjørne
     POSITION [PAGESIZE[0], 0] ; drej og flyt til øverste højre hjørne
     POSITION ANY ; drej og flyt til en tilfældig position

### HEADING (seth) retning

     HEADING 0 ; drej mod nord
     HEADING 12h ; Se ovenfor
     HEADING [0, 0] ; drej mod øverste venstre hjørne
     HEADING ANY ; drej til en vilkårlig retning

## Andre skildpaddekommandoer

### HIDETURTLE (ht)

     HIDETURTLE ; skjul skildpadden (indtil kommandoen showturtle)

### SHOWTURTLE (st)

     SHOWTURTLE ; vis skildpadden

### HOME

     HOME ; nulstil oprindelig skildpaddeposition

### CLEARSCREEN (cs)

     CLEARSCREEN ; slet dokumentets tegnede objekter

### FILL og CLOSE

     FILL ; luk og fyld den aktuelle streg-figur eller punkter
     CLOSE ; luk den aktuelle streg-figur eller forbind de aktuelle punkter

Eksempel: udfyldning af en regulær trekant:

     FORWARD 50 LEFT 120 FORWARD 50 FILL

Eksempel: tegne en regulær trekant:

     FORWARD 50 LEFT 120 FORWARD 50 CLOSE

## Indstilling af pen

### PENSIZE (ps)

     PENSIZE 100 ; linjetykkelsen er 100 points
     PENSIZE ANY ; det samme som PENSIZE RANDOM 10

### PENCOLOR/PENCOLOUR (pc)

     PENCOLOR “red” ; sætter pennefarven til rød (med farvens navn, se farvekonstanter)
     PENCOLOR [255, 255, 0] ; sætter farven til gul (RGB liste)
     PENCOLOR 0xffff00 ; set farven til gul (hexa decimal kode)
     PENCOLOR 0 ; sætter farven til sort (0x000000)
     PENCOLOR ANY ; tilfældig farve
     PENCOLOR [5] ; sæt farven til rød med farveidentifikator, se farvekonstanter)
     PENCOLOR “invisible” ; usynlig pennefarve til figurer uden synligt omrids
     PENCOLOR “~red” ; sæt farven til en tilfældig rød

### PENTRANSPARENCY

     PENTRANSPARENCY 80 ; sæt gennemsigtigheden for den aktuelle penfarve til 80%

### PENCAP/LINECAP

     PENCAP “none” ; uden ekstra linjeafslutning (default)
     PENCAP “round” ; afrundet linjeafslutning
     PENCAP “square” ; kantet linjeafslutning

### PENJOINT/LINEJOINT

     PENJOINT “rounded” ; afrundet linjesammenføjning (standard)
     PENJOINT “miter” ; spids linjesammenføjning
     PENJOINT “bevel” ; affaset linjesammenføjning
     PENJOINT “none” ; ingen linjesammenføjning

### PENSTYLE

     PENSTYLE “solid” ; ubrudt linje (standard)
     PENSTYLE “dotted” ; prikket linje
     PENSTYLE “dashed” ; stiplet linje

     ; tilpasset prik-stregmønster specificeret af en liste med disse argumenter:
     ; – antal prikker i træk
     ; – prikkers længde
     ; – antal streger i træk
     ; – stregens længde
     ; – afstand mellem prikker/steger
     ; – type (valgfri):
     ;   0 = prikker er rektangulære (standard)
     ;   2 = prikker er kvadratiske (længder og afstande er i forhold til stregtykkelsen)

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

## Indstillinger for fyld

### FILLCOLOR/FILLCOLOUR (fc)

     FILLCOLOR “blue” ; udfyld med blå farve, se også PENCOLOR
     FILLCOLOR “invisible” CIRCLE 10 ; uudfyldt cirkel
     FILLCOLOR [“blue”, “red”] ; gradient mellem rød og blå
     FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; mellem hvid og orange
     FILLCOLOR [“blue”, “red”, 1, 0, 0] ; definér aksial gradient (med den ønskede drejningsretning og kant), mulige værdier: 0-5 = lineær, aksial, radial, elliptisk, kvadrat og rektangel – gradienter
     FILLCOLOR [“red”, “blue”, 0, 90, 20] ; lineær med 20% kant, drejet 90 grader fra den retning, skildpadden peger
     FILLCOLOR [“red”, "blue”, 0, 90, 20, 0, 0, 200, 50] ; fra 200% til 50% intensitet
     FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; radial gradient med tilfældige farver og 50-50% vandrette og lodrette positioner af centret

### FILLTRANSPARENCY

     FILLTRANSPARENCY 80 ; sæt gennemsigtigheden af den aktuelle udfyldningsfarve til 80%
     FILLTRANSPARENCY [80] ; sæt lineær gennemsigtig gradient fra 80% til 0%
     FILLTRANSPARENCY [80, 20] ; sæt lineær gennemsigtig gradient fra 80% til 20%
     FILLTRANSPARENCY [80, 20, 1, 90] ; sæt aksial gennemsigtig gradient drejet 90 grader fra den retning, skildpadden peger
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; sæt radial gennemsigtig gradient fra ydre 80% til indre 20% gennemsigtighed med 20% kant og med 50-50% vandrette og lodrette positioner af centret

### FILLSTYLE

     FILLSTYLE 0 ; fyld uden skravering (standard)
     FILLSTYLE 1 ; sort enkeltskravering (vandret)
     FILLSTYLE 2 ; sort enkeltskravering (45°)
     FILLSTYLE 3 ; sort enkeltskravering (-45°)
     FILLSTYLE 4 ; sort enkeltskravering (lodret)
     FILLSTYLE 5 ; rød krydsskravering (45°)
     FILLSTYLE 6 ; rød krydsskravering (0°)
     FILLSTYLE 7 ; blå krydsskravering (45°)
     FILLSTYLE 8 ; blå krydsskravering (0°)
     FILLSTYLE 9 ; blå trippelskravering
     FILLSTYLE 10 ; sort bred enkeltskravering (45°)

     ; tilpasset skravering efter en liste med disse argumenter:
     ; – stil (1 = single, 2 = double, 3 = triple hatching)
     ; – farve
     ; – afstand
     ; – gradtal

     FILLSTYLE [2, “green”, 3pt, 15°] ; grøn krydsskravering (15°)

## Tegneobjekter

### CIRCLE

     CIRCLE 100 ; tegn en cirkel (diameter = 100pt)

### ELLIPSE

     ELLIPSE [50, 100] ; tegn en ellipse med akserne 50 and 100
     ELLIPSE [50, 100, 2h, 12h] ; tegn en  ellipsesektor (fra position kl. 2 til kl. 12)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; tegn et ellipsesegment
     ELLIPSE [50, 100, 2h, 12h, 3]  ; tegn en ellipsebue

### SQUARE

     SQUARE 100 ; tegner et kvadrat (størrelse = 100pt)

### RECTANGLE

     RECTANGLE [50, 100] ; tegner et rektangel (50×100pt)
     RECTANGLE [50, 100, 50] ; tegner et rektangel med runde hjørner

### POINT

     POINT ; tegner et punkt med pennens størrelse og farve

CLOSE kan forbinde de sidste punkter, FILL kan fylde figuren defineret af punkterne. For eksempel er det nemt at tegne en “flad” stjerne, ved at starte fra dens centrum:

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

### LABEL

     LABEL “tekst” ; udskriver tekst på skildpaddens position
     LABEL 'tekst' ; se herover
     LABEL "tekst ; se herover (kun for enkelte ord)

### TEXT

     CIRCLE 10 TEXT “text” ; vælg teksten til det aktuelle tegneobjekt

## Skrifttypeindstillinger

### FONTCOLOR/FONTCOLOUR

     FONTCOLOR “green” ; vælg skriftfarve

### FONTFAMILY

     FONTFAMILY “Linux Libertine G” ; angiv skrifttype (familie)
     FONTFAMILY “Linux Libertine G:smcp=1” ; angiv også skrifteffekter (små bogstaver)
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; små bogstaver  + gammeldags stil

### FONTSIZE

     FONTSIZE 12 ; vælg 12pt

### FONTWEIGHT

     FONTWEIGHT “bold” ; vælg fed skrifttype
     FONTWEIGHT “normal” ; vælg normal vægt

### FONTSTYLE

     FONTSTYLE “italic” ; vælg kursiv
     FONTSTYLE “normal” ; vælg normal

## PICTURE (pic)

PICTURE bruges til

- gruppering af figurer;

- at begynde nye stregfigurer;

- at gemme SVG-billeder og SVG/SMIL-animationer;

- at fastholde sammenhængen mellem positioner og stregfigurer i forhold til venstre kant.

### Gruppering af figurer

     ; PICTURE [ LibreLogo_commands ]
     PICTURE [ FORWARD 100 CIRCLE 100 ] ; træ-lignende grupperet figur

Se også "Gruppe" i LibreOffice Writer Hjælp.

     TO tree location
       PENUP POSITION location HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; træ-lignende grupperet figur
     END

     PICTURE [ tree [230, 400] tree [300, 400] ] ; grupperede figurer i en grupperet figur

### At starte nye stregfigurer

     PICTURE ; start en ny stregfigur
     FORWARD 10 PICTURE FORWARD 10 ; to stregfigurer

### At gemme SVG-billeder

     PICTURE “eksempel.svg” [ CIRCLE 5 ] ; gem billeder som et SVG-billede i brugerens hjemmemappe
     PICTURE “Skrivebord/eksempel.svg” [ FORWARD 100 CIRCLE 5 ] ; som ovenfor med en relativ sti
     PICTURE “/home/user/eksempel.svg” [ CIRCLE 5 ] ; absolut sti for Unix/Linux
     PICTURE “C:\eksempel.svg” [ CIRCLE 5 ] ; absolut sti på Windows

### At gemme SVG/SMIL-animationer (tegninger med SLEEP-kommandoer)

     PICTURE “animation.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; gem en SVG/SMIL animation (se også SLEEP)
     PICTURE “animation2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; som ovenfor, men ved brug af SLEEP efter sidste objekt vil resultatet køre i ring: efter 2 sekunder starter animationen forfra, hvis den vises i en browser, som understøtter SMIL.

### Sammenhæng i forhold til venstre kant

Brug PICTURE til af holde sammenhængen mellem positioner og stregfigurer i forhold til Writers venstre kant:

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

## Løkker

### REPEAT

     ; REPEAT antal [ kommandoer ]

     REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; gentag 10 gange

     ; antal er valgfrit

     REPEAT [ POSITION ANY ] ; endeløs løkke

### REPCOUNT

Løkkevariabel (også i FOR og WHILE løkker).

     REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]

### FOR IN

Løkke for listeelementerne:

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

Løkke til tegn i en tegnsekvens:

     FOR i IN “text” [
       LABEL i
       FORWARD 10
     ]

### WHILE

     WHILE TRUE [ POSITION ANY ] ; endeløs løkke
     WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; as REPEAT 10 [ ... ]

### BREAK

Stop løkken.

     REPEAT [ ; endeløs løkke
       POSITION ANY
       IF REPCOUNT = 100 [ BREAK ]  ; svarende til REPEAT 100 [ ... ]
     ]

### CONTINUE

Hop til næste gennemløb af løkken.

     REPEAT 100 [
       POSITION ANY
       IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; tegner cirkler på hver anden position
     ]

## Betingelser

### IF

     ; IF betingelse [ sand blok ]
     ; IF betingelse [ sand blok ] [ falsk blok ]

     IF a < 10 [ PRINT “Lille” ]
     IF a < 10 [ PRINT “Lille” ] [ PRINT “Stor” ]

### AND, OR, NOT

Logiske operatorer.

     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” ] ; som ovenfor

## Subrutiner

### TO, END

Nyt ord (eller ny procedure).

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

     REPEAT 10 [ trekant PENUP POSITION ANY PENDOWN ]

### OUTPUT

Returværdi fra funktion.

     TO randomletter
       OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
     END

     PRINT randomletter + randomletter + randomletter ; udskriv tilfældig tegnsekvens på 3 bogstaver

### STOP

Retur fra proceduren.

     TO example number
       IF number < 0 [ STOP ]
       PRINT SQRT number ; udskriv kvadratrod
     ]

     example 100
     example -1 ; uden uddata og fejl
     example 25

## Standardvariable

### ANY

Standard tilfældig farveværdi osv.

     PENCOLOR ANY ; tilfældig penfarve

### TRUE Sand

Logisk værdi.

     WHILE TRUE [ POSITION ANY ] ; endeløs løkke
     PRINT TRUE ; udskriv sand

### FALSE

Logisk værdi.

     WHILE NOT FALSE [ POSITION ANY ] ; endeløs løkke
     PRINT FALSE ; udskriv falsk

### PAGESIZE

     PRINT PAGESIZE ; udskriv liste med sidens størrelse i punkter, fx. [595.30, 841.89]

### PI/π

     PRINT PI ; udskriv 3.14159265359

## Input/Output

### PRINT

     PRINT “tekst” ; udskriv “tekst” i en dialogboks
     PRINT 5 + 10 ; udskriv 15

### INPUT

     PRINT INPUT “Inddata værdi?” ; spørg og udskriv en streng ved hjælp af en forespørgselsboks
     PRINT FLOAT (INPUT “Første tal?”) + FLOAT (INPUT “Andet tal?”) ; simpel lommeregner

## SLEEP

     SLEEP 1000 ; vent i 1000 ms (1 sek)

## GLOBAL

Sæt globale variable til brug i procedurer.

     GLOBAL about
     about = “LibreLogo”

     TO example
       PRINT about
       GLOBAL about ; når vi vil tilføje en ny værdi
       about = “den globale variabels nye værdi”
     END

     example
     PRINT about

## Funktioner

### RANDOM

     PRINT RANDOM 100 ; tilfældigt kommatal (0 <= x < 100)
     PRINT RANDOM “teksten” ; tilfældigt tegn fra “teksten”
     PRINT RANDOM [1, 2] ; tilfældigt element fra listen (1 eller 2)

### INT

     PRINT INT 3.8 ; udskriv 3 (heltalsdelen af 3.8)
     PRINT INT RANDOM 100 ; tilfældigt heltal (0 <= x < 100)
     PRINT INT “7” ; omdan strengparameteren til heltal

### FLOAT

     ; konverter strengparameteren til kommatal
     PRINT 2 * FLOAT “5.5” ; skriv 11.0

### STR

     ; omdan talparameter til en streng
     PRINT “Resultat: ” + STR 5 ; udskriv “Resultat: 5”
     PRINT 10 * STR 5 ; udskriv 5555555555

### SQRT

     PRINT SQRT 100 ; udskriv 10, kvadratroden af 100

### SIN

     PRINT SIN 90 * PI/180 ; udskriv 1.0 (sinus af 90° in radianer)

### COS

     PRINT COS 0 * PI/180 ; skriv 1.0 (sinus af 0° i radianer)

### LOG10

     PRINT LOG10 100 ; Skriv 2.0 (titalslogaritmen af 100)

### ROUND

     PRINT ROUND 3.8 ; skriv 4 (afrund 3.8)
     PRINT ROUND RANDOM 100 ; tilfældigt heltal (0 <= x <= 100)

### ABS

     PRINT ABS -10 ; skriv 10, den numeriske værdi af -10

### COUNT

     PRINT COUNT “tekst” ; skriv 5, tegntælling af “tekst”
     PRINT COUNT [1, 2, 3] ; skriv 3, listens størrelse

### SET

     ; Konverter listen til et Python sæt
     PRINT SET [4, 5, 6, 6] ; skriv {4, 5, 6}
     PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; skriv {1, 4, 5, 6, 9}, foreningsmængden
     PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ; skriv {4}, fællesmængden
     PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; skriv {5, 6}, forskellen
     PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; skriv {1, 5, 6, 9}, symmetrisk forskel

### RANGE

     ; Python-lignende liste-generering
     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

     ; fjern gentagne elementer i en list med set and listekonvertering
     PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; skriv [1, 3, 5, 2]

### TUPLE

Konvertér til Python-tuple (fast liste)

     PRINT TUPLE [4, 5]

### SORTED

Den returnerer en sorteret liste.

     PRINT SORTED [5, 1, 3, 4] ; skriv [1, 3, 4, 5]

### SUB

Udskift tegnsekvenser med regex- (regulært udtryk) mønstre.

     PRINT SUB (“t”, “T”, “tekst”) ; print “Tekst”, ved at udskifte “t” med “T”
     PRINT SUB (“(.)”, “\\1\\1”, “tekst”) ; print “tteekksstt”, ved at fordoble alle tegn

### SEARCH

Søg tegnsekvensmønstre med regulære udtryk (regex-mønstre).

     IF SEARCH (“\w”, "word") [ PRINT “Bogstav i ordet.” ]

### FINDALL

Find alle tegnsekvenser i inputstrengen, der matcher det givne regulære udtryk (regex-mønster).

     PRINT FINDALL(“\w+”, “Hunde, katte.”) ; skriv [“Hunde”, “katte”], listen af ord.

### MIN

     PRINT MIN [1, 2, 3] ; skriv 1, listens mindste element

### MAX

     PRINT MAX [1, 2, 3] ; skriv 3, det største element i listen

## Farvekonstanter

     PENCOLOR “SILVER” ; vælg med navn
     PENCOLOR [1] ; vælg med identifikatorer
     PENCOLOR “~SILVER” ; tilfældig sølvfarve

Identifikator | Navn
--- | ---
0 | BLACK (sort)
1 | SILVER (sølvfarvet)
2 | GRAY/GREY (grå)
3 | WHITE (hvid)
4 | MAROON (rødbrun)
5 | RED (rød)
6 | PURPLE (lilla)
7 | FUCHSIA/MAGENTA Fuchsia-/magentarød
8 | GREEN (grøn)
9 | LIME (limegrøn)
10 | OLIVE (olivengrøn)
11 | YELLOW (gul)
12 | NAVY (marineblå)
13 | BLUE (blå)
14 | TEAL (blågrøn)
15 | AQUA (turkis)
16 | PINK (pink)
17 | TOMATO (tomatrød)
18 | ORANGE (orange)
19 | GOLD (guld)
20 | VIOLET (violet)
21 | SKYBLUE (himmelblå)
22 | CHOCOLATE (chokoladebrun)
23 | BROWN (brun)
24 | INVISIBLE (usynlig)