Metódusokat szintén a többi nyelvhez hasonlóan definiálunk, viszont nem különböztetjük meg kulcsszóval a függvényeket és az eljárásokat. A visszatérési érték az abban szereplő utolsó kifejezés értéke lesz. A metódusokat a | (pipe) jellel hívjuk meg. A blokkokat a [ és a ] jel határolja. A return utasítással befejezhetjük a metódus végrehajtását.
Névtelen metódusokat is definiálhatunk.
A metódusoknak akármennyi paraméterük lehet, viszont típust itt sem adhatunk meg. Nem lehetséges alapértelmezett értéket megadni. A paraméterátadás az immutable típusok esetében érték szerinti, listák és a felhasználó általá létrehozott objektumok esetében pedig referencia szerinti.
Túlterhelés szintén lehetséges. Metódusoknál a túlterhelés lényegében csupán a paraméterek számának változását jelenti.
Lehetőség van az operátorok túlterhelésére is a operator kulcsszóval, ám ezek előre
meghatározott nevekkel rendelkeznek.
név | műveleti jel | elnevezés |
---|---|---|
plus | + | újsor |
minus | - | kivonás |
multiply | * | szorzás |
divide | / | osztás |
mod | % | mod |
unplus | + | unáris összeadás |
unminus | - | unáris kivonás |
map | <- | map (foreach) |
reduce | <| | hajtogatás |
array | [] | tömb dereferencia |
array_set | []= | tömb értékadás |
lt | < | kisebb |
gt | > | nagyobb |
leq | <= | kisebb |
geq | >= | kisebb |
and | and | logikai/bitenkénti és |
or | or | logikai/bitenkánti vagy |
not | not | logikai/bitenkénti negáció |
xor | xor | logikai/bitenkéni kizáró vagy |
lshift | << | balra shiftelés |
rshift | >> | jobbra shiftelés |
A rekurzió a többi programnyelvhez hasonlóan használható.