Modul
Indhold
Indholdsfortegnelse 🔎︎

# 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

De svarer til de samme Logo-kommandoer “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

"Tryllestavs"-ikonet skaber et 2-sidet layout til programredigering, udvider og konverterer de forkortede Logo-kommandoer, som er skrevet med små bogstaver i Writer-dokumentet, til store bogstaver. Ændr standardsproget for dokumenter (Funktioner » Indstillinger » Sprogindstillinger » Sprog » Vestligt) og klik 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, kan du klikke tre gange efter hinanden i feltet, eller trykke CRTL+A for at markere den aktuelle kommando, og skrive for at overskrive med en ny kommando.

## Grafisk brugergrænseflade og grundlæggende skildpaddeindstillinger

Skildpaddeformen i LibreLogo er et almindeligt tegneobjekt med fast størrelse. Du kan også placere og rotere på normal vis, ved hjælp af musen og rotations-ikonet i værktøjslinjen Tegneobjekteegenskaber. Ændring af linje tykkelse, linje farve og områdefarve for skildpadden sker med LibreLogo attribut-kommandoerne 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 paranteserne: REPEAT 10 [ FORWARD 10 LEFT 36 ]

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

- Deklarationer i enkeltlinjefunktioner 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 deklaration af variabler:

       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 er følsomme for små og store bogstaver:

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

Navne på variabler er følsomme for små og store bogstaver:

     a = 5
     A = 7
     PRINT a
     PRINT A

### Programlinjer

Linjer i et LibreLogo program er afsnit i LibreOffice 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 der 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) skjul skildpadden

     HIDETURTLE ; skjul skildpadden (indtil kommandoen showturtle)

### SHOWTURTLE (st) vis skildpadden

     SHOWTURTLE ; vis skildpadden

### HOME hjem

     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 ; linjens bredde er 100 punkter
     PENSIZE ANY ; svarende til 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] ; definer aksial gradient (med den ønskede rotation 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, roteret 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 ; definer gennemsigtigheden af den aktuelle udfyldningsfarve til 80%
     FILLTRANSPARENCY [80] ; definer lineær gennemsigtig gradient fra 80% til 0%
     FILLTRANSPARENCY [80, 20] ; definer lineær gennemsigtig gradient fra 80% til 20%
     FILLTRANSPARENCY [80, 20, 1, 90] ; definer aksial gennemsigtig gradient roteret 90 grader fra den retning, skildpadden peger
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; definer radial gennemsigtig gradient fra ydre 80% til indre 20% transparens 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°] ; green crossed hatches (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 punkt

     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 Skriftfarve

     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 skriftstørrelse

     FONTSIZE 12 ; vælg 12pt

### FONTWEIGHT skrifttypens vægt

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

### FONTSTYLE Skrifttypestil

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

## PICTURE (pic) Billede

PICTURE er til

- gruppering af figurer;

- begynde nye stregfigurer

- Gemmer 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 hjælpen for LibreOffice Writer.

     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

### Gemmer SVG-billeder

     PICTURE “eksampel.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

### Gemmer SVG/SMIL animations (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, menved 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 Gentag

     ; 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 Gentagelsestæller

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 Mens

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

### BREAK Afbryd

Stop løkken.

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

### CONTINUE Fortsæt

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 hvis

     ; 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 og, eller, ikke

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 til, slut

Nyt ord (eller procedure).

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

     REPEAT 10 [ trekant PENUP POSITION ANY PENDOWN ]

### OUTPUT uddata

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

## Standardvariabler

### ANY tilfældig

Standard tilfældig farveværdi osv.

     PENCOLOR ANY ; tilfældig pennefarve

### TRUE Sand

Logisk værdi.

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

### FALSE Falsk

Logisk værdi.

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

### PAGESIZE sidestørrelse

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

### PI/π

     PRINT PI ; udskriv 3.14159265359

## Input/Output

### PRINT udskriv

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

### INPUT inddata

     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 vent

     SLEEP 1000 ; vent i 1000 ms (1 sek)

## GLOBAL global variabel

Sæt globale variabler 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 tilfældig

     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 heltal

     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 streng

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

### SQRT kvadratrod

     PRINT SQRT 100 ; udskriv 10, kvadratroden af 100

### SIN sinus

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

### COS 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 Afrund

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

### ABS Abs

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

### COUNT Tæl

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

### SET Sæt

     ; 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 Interval

     ; Python-lignende liste generation
     PRINT RANGE 10 ; skriv [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT RANGE 3 10 ; skriv [3, 4, 5, 6, 7, 8, 9]
     PRINT RANGE 3 10 3 ; skriv [3, 6, 9]

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

### LIST Liste

     ; 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

Konverter til Python tuple (fast liste)

     PRINT TUPLE [4, 5]

### SORTED Sorteret

Den returnerer en sorteret liste.

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

### SUB 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

Søg tegnsekvensmønstre med regex-mønstre.

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

### FINDALL Find alle

Find alle tegnsekvenser i inputstrengen, der matcher det givne regex-mønster.

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

### MIN Min

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

### MAX Maks

     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ølv(farvet)
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