Függvénytípusok
Kétfajta függvényt különböztetünk meg: az egyik valamilyen értéket ad eredményül (verb),
a másik eredménye egy módosított függvény lesz (adverb), ez valójában egy függvénykompozíció.
Például:
- verb: '+'
2 + 3
5
- adverb: '~' (argumentumokat felcserélő függvény a '+'-ra alkalmazva)
2 +~ 3
3 + 2
- Egy és kétargumentumú függvények (Monads and Dyads): minden kétargumentumú függvénynek létezik az egyargumentumú párja is.
(Ahogy a +, -, stb. műveleteket lehet értelmezni egy vagy két-argumentumuként, úgy kell értelmet adni a többinek is.)
Függvénydefiniálás
Egyszerűen nevet adunk a kódrészletünknek:
Max =: >.
2 Max 3
3
Függvények kompozíciója
NB. 1*1 + 2*2 + 3*3 = 14
sum square 1 2 3
14
NB. Írhatjuk így is:
sumsq =: sum @: square
sumsq 1 2 3
14
Az általános séma: "(f
@: g) y" jelentése: "f (g y)"
Scriptek
Scriptnek J sorok sorozatát nevezzük amelyek újra felhasználhatóak.
Az általános alak:
txt =: type : body NB. Ez a fejléc
What is called a "script" is NB. A törzs
a sequence of lines of J.
) NB. Itt a vége
A type lehetséges értékei:
noun | 0 |
adverb | 1 |
conjunction | 2 |
verb | 3 |
monad | 3 |
dyad | 4 |
Ha a body értéke 0 akkor a mögötte lévő sorok adják a függvény törzsét.
Az argumentumokat egyargumentumú függvénynél az y. változó tartalmazza, két-argumentumúnál ehhez hozzájön az x. is (a baloldali az x.).
A függvényben láthatóak a külső változók.
Lokális változók ismertetőjele a nevük utáni pont (az y. változó amiben a paramétert kapjuk egy lokális változó például).