Értéke -32767 és +32767 között lehet, idézőjelek nélkül kell megadni.
Például:
A Vanilla SNOBOL4 még nem tartalmazza a valós számokat, viszont a SNOBOL4+ már igen. Megengedett az 'integer.0' (pl.: 5.0) és az 'integer.' (pl.: 5.) forma, de vigyázat, mivel a SNOBOL-ban a '.' egy operátor, ezért a '.integer' (pl.: .7) nem megengedett, ehelyett: '0.integer' (pl.: 0.7). A számokat meg lehet adni exponenciális formában is (pl.: 1.23456E2 = 123.456).
A 'valós' számokon kívül, még 3 nem valós szám is értelmezve van: INFINITY (végtelen), -INFINITY, NAN ('not a number').
Egy-két valós függvényt is bevezettek a nyelvbe: ln(), exp(), chop().
A string karakterek rendezett sorozata, de fontos, hogy az 'AB' és 'BA' stringek különbözőek. Normális esetben egy string hossza maximum 5000 karakter lehet, de ennek ellenére rá tudjuk venni a SNOBOL-t hosszabb karakterek kezelésére is. A nulla hosszúságú stringet null stringnek hívjuk, és így jelöljük: ''. Egy stringet aposztrófok (') vagy idézőjelek (") közé kell tenni, de nem lehet keverni, vagyis a kezdő jelnek és a vége jelnek meg kell egyeznie.
A tömbök használata lehetővé teszi, hogy egyetlen változónévvel meghatározzunk több adatelemet. A tömbelemek bármilyen adattípust tartalmazhatnak a többi tömbelemtől függetlenül. A tömbök létrehozása a program végrehajtása alatt történik, nem fordítási időben. A tömbök méretét bármikor módosíthatjuk vagy törölhetjük őket.
A tömböket az ARRAY függvény hozza létre, melynek a tömb méreteit tartalmazó stringet kell megadni. A függvény visszatérési értéke egy tömb mutató (array pointer). ARRAY a tömbelemeket a null stringre inicializálja, de megadhatunk nekik más értékeket is.
Például:
A tömbelemekre kétféleképpen hivatkozhatunk: a <> és [] zárójelekkel.
Például:
A kacsacsőrök és a szögletes zárójelek használata között nincs különbség. A tömbnevek valóban pointerek:
A COPY függvénnyel készíthetünk a tömbről másolatot.
A tömbelemeken való végiglépegetéshez nem kell tudnunk a tömb méretét. Addig lépegetünk, amíg a tömbelemre mutatás műveletének eredménye failure nem lesz:
Az ARRAY függvény a tömb összes elemét a második argumentum értékére állítja be:
Általában 1-től a megadott értékig. De ha nekünk ez nem tetszik, magunk adhatjuk meg a tömb alsó és felső határát. Az ARRAY első argumentuma az alábbi általános formában írható fel:
Értelemszerűen az 'L' az alsó indexhatárt, míg a 'H' a felső indexhatárt jelöli, a számok pedig a dimenziót.
Például:
A tábla egy egyszerű egydimenziós tömb, két fontos eltéréssel. Először is, a tábla mérete nem kötött; automatikusan nő a mérete, ahányszor új elemet adunk hozzá. Másodszor, a tábla indexe nincs az integerekre korlátozva, bármilyen SNOBOL4 adattípus lehet. Stringeket és mintákat ugyanúgy használhatjuk indexnek, mint az integereket. A tábla típus gyakorlatilag egy elempárokat tartalmazó asszociatív tábla. Táblákat a TABLE függvénnyel hozhatunk létre. A függvény visszatérési értéke egy tábla pointer.
Például:
Ebben a példában stringeket használtunk a tábla indexeként. A T['THE'] értéke automatikusan a null string lesz.
Ha a tábla elemeit egy fájlba szeretnénk írni, akkor jó lenne valahogy rendszerezni ezeket az adatokat. Semmi gond - konvertáljuk a táblát tömbbé. A tömb egy N x 2-es mátrix lesz, vagyis N sorral és 2 oszloppal fog rendelkezni. Az 1. oszlop a tábla indexeket tartalmazza, míg a 2. a megfelelő tábla adatokat. N a bejegyzések száma a táblába, nem 0 az értéke. A konvertálás a CONVERT függyvénnyel történik, mely igényel egy tábla argumentumot és az 'ARRAY' szót, és visszatérési értéke egy új tömbre mutató pointer lesz. Folytassuk a következő példával:
A SNOBOL4-t megismerve már nem lepődünk meg azon, hogy a konvertálás visszafelé is megtehető, a tömbből táblává való konvertálás szintén lehetséges:
Néhány egyszerű programrészlet:
Számos operátor található a SNOBOL4-ben, sőt saját operátorok definiálása is megengedett. Most a legegyszerűbb egy- és kétoperandusú operátorokkal fogunk foglalkozni. Fontos megjegyezni, hogy az operátorok jele előtt és után szünetet kell hagyni!
Megjegyzés: a bináris operátoroknál a legmagasabb prioritása a hatványozásnak van, utána következik a szorzás, majd az osztás, és végül az összeadás és a kivonás. Általában a programozási nyelvekben a szorzás és az osztás hasonló precedenciájú, SNOBOL-ban ez nem így van, a szorzásnak nagyobb a prioritása.
Megjegyzés: a *, /, + és a - kiértékelése balról jobbra történik, míg a ** operátornál jobbról balra.
Megjegyzés: a következő példákon keresztül megismerkedhetünk a SNOBOL kivételes adottságaival, a rendszer automatikusan konvertálja az operátornak megfelelő adattípust, legalábbis megpróbálja, hiszen látni fogjuk, hogy nem lehetséges ez mindig. A null string a 0 integerré konvertálódik.
A program végrehajtása alatt új változókat hozhatunk létre, és meglevőekre referálhatunk karakterstringekből létrehozott változónevekkel. Az indirekt referencia unáris operátor, jele a dollárjel ($). Ha ezt változóra alkalmazzuk, akkor a változó tartalmát használja változónévként - és ez egy másik változó lesz.
Például:
Példa új változó létrehozására:
Az indirekt referenciák bármilyen mélységben egymásba ágyazhatók. Null string nem szerepelhet változónévként.
Alkalmazások: