Käsk learn on väga eriline, sest selle abil saab luua omaenda käske. Sinu loodud käsk võib kasutada nii sisendit kui anda väljundit. Vaatamegi nüüd, kuidas uus käsk luua.
learn ringjoon $x {
repeat 36 {
forward $x
turnleft 10
}
}
Uus käsk kannab nime ringjoon. ringjoon kasutab sisendina argumenti, mis määrab ringjoone suuruse. ringjoon ei tagasta mingit väljundit. Nüüd võime käsku ringjoon kasutada täiesti tavalise käsuna, nagu selles näites:
learn ringjoon $X {
repeat 36 {
forward $X
turnleft 10
}
}
go 200,200
ringjoon 20
go 300,200
ringjoon 40
Järgmises näites aga loome väljundväärtusega käsu.
learn faculty $x {
$r = 1
for $i = 1 to $x {
$r = $r * $i
}
return $r
}
print faculty 5
Selles näites on uue käsu nimeks faculty. Kui käsu sisend on on 5, siis väljund on 5*4*3*2*1. Käsk return määrab kindlaks väärtuse ning täitmisega tagastataksegi väljundväärtus.
Käskudel võib olla enam kui üks sisend. Järgmises näites luuakse käsk, mis toob kaasa ristküliku joonistamise.
learn box $x, $y {
forward $y
turnright 90
forward $x
turnright 90
forward $y
turnright 90
forward $x
turnright 90
}
Nüüd võid käivitada box 50, 100 ning kilpkonn joonistab lõuendile ristküliku.