Omaenda käskude loomine käsuga learn

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.