A J programozási nyelv

Típusok, típuskonstrukciók

Típusszerkezet

A J nyelvnek három elemi típusa van: Numeric, Character, Boxed. Egyedül a tömb típuskonstrukciót támogatja.

Elemi típusok

Numerikus típusok

Karakter típus

A J nyelvben megtalálható a karaktertípus. A karaktereket idézőjelek közé kell tenni, képezhetjük sorozatukat.

Boxed (dobozolt) típus

Adatokat tehetünk egy dobozba a '<' operátor felhasználásával. Ez hasonlít a C '&' operátorához, viszont '<' itt egy funkció ami eredményt produkál, ez az eredmény 0 dimenziós. A dobozokból tömböket is készíthetünk.
Példa a dobozolásra:

<1 0 0 1 0 1 0

+----------------+
│1 0 0 1 0 1 0│
+----------------+

Típuskonstrukciók

Tömbök

A J nyelv egyedül a tömb típuskonstrukciót támogatja. A tömbök tetszőleges dimenziósak lehetnek. Az 1 dimenziós tömböt listának, a 2 dimenziósat táblának is nevezzük (hivatalos dokumentáció szerint). Egy tömb dimenzióját az egyargumentumú $ függvény adja. A legtöbb algoritmus könnyen kifejezhető tömbökön végzett műveletek által. A tömbök homogén típusozottak.

Példa egy 2 dimenziós tömb elkészítésére:

table:= 2 3 $ 1 1 1 2 2 2

Eredménye:
1 1 1
2 2 2


Néhány tömbművelet:

Változók

A J nyelv nem tartalmaz klasszikus értelemben vett változókat. Nincs változó-deklarációt, egy kifejezést/a kifejezések eredményét azonosíthatunk egy névvel, melyre később hivatkozhatunk. Egy név hivatkozhat számra, karakterre, tömbre, listára, beépített altípusra, de még programra is, és bármikor új entitást rendelhetünk hozzájuk. Egy névhez a "=:" vagy a "=." jel segítségével rendelhetünk egy entitást.

a =: 7 NB. az "a" név a 7 számot fogja azonosítani a =: 7 + 3 NB. az "a" név a 10 számot fogja azonosítani a =: '7 + 3' NB. az "a" név a "7 + 3" karaktersorozatot fogja azonosítani

Operátorok

A J nyelv rengeteg beépített operátort tartalmaz, melynek teljes listája ezen az oldalon tekinthető meg.