A Scheme-ben használható konstansok (atomok) lehetnek számok, logikai konstansok (#t és #f), az üres lista és sztringek. Néhány példa atomokra:
A változók és függvények nevei is atomok. A lista elemek rendezett halmaza. A listaelemek lehetnek atomok, vagy listák. A listákat ugyanúgy zárójelek közé kell tenni, mint LISP-ben. Hasonlóan adhatunk meg vektorokat is, ha a zárójel elé # karaktert teszünk.
Néhány példa listákra és vektorokra:
Egy másik mód listák megadására a listakonstruktorok használata. Az üres listát a () reprezentálja, és ebből a listakonstruktor, a cons függvény segítségével a következőképpen építhető fel a lista: a (cons X ()) egy egyelemű, a (cons X (cons y())) egy kételemű listát állít elő. Hasonlóan többelemű listák is konstruálhatók.
A Scheme egyszerű típusait az alábbi táblázat foglalja össze:
| TÍPUSOK | ÉRTÉKEK |
| logikai (boolean) | #t, #f |
| szám (number) | egészek és lebegőpontos számok |
| szimbólum (symbol) | karaktersorozatok |
| pár (pair) | listák és rendezett párok |
| eljárás (procedure) | függvények és procedúrák |
A Scheme összetett típusait az alábbi táblázat foglalja össze:
| TÍPUS | REPREZEZENTÁCIÓ |
| lista | (elemek szóközökkel elválasztott sorozata) |
| function | lásd később |
A Scheme predikátum egy logikai függvény, amivel egy típushoz való tartozást, vagy valamilyen tulajdonságot lehet megállapítani. Mivel a Scheme gyengén típusos, sok ilyen függvény létezik. Néhány példa ezekre:
| PREDIKÁTUM | MIT ELLENŐRIZ |
| (boolean? arg ) | az arg logikai érték-e |
| (number? arg ) | az arg numerikus érték-e |
| (pair? arg ) | az arg pár-e |
| (symbol? arg ) | az arg szimbólum-e |
| (procedure? arg ) | az arg függvény-e |
| (null? arg ) | az arg üres lista-e |
| (zero? arg ) | az arg nulla-e |
| (odd? arg ) | az arg páratlan-e |
| (even? arg ) | az arg páros-e |
A Scheme numerikus adattípusa a number, ami lehet egész, racionális, valós, vagy komplex.
Például:
| SZIMBÓLUM | OPERÁTOR |
| + | összeadás |
| - | kivonás |
| * | szorzás |
| / | valós osztás |
| quotient | egész osztás |
| modulo | modulus |
A lista a Scheme alapvető struktúrált adattípusa. A következő példákban az argumentumokat aposztrófok előzik meg. Ez jelzi a Scheme-nek, hogy nem szabad szigorú kiértékelést használni. Néhány példa a Scheme beépített listakezelő függvényeire:
A logikai igaz és hamis rendre #t és #f. A Scheme a #f-on és az üres listán kívül mindent igaznak tekint, a #f-t és a ()-t hamisnak. Scheme-ben használhatók a szokásos logikai operátorok not, and, or, és különféle egyenlőségvizsgálatok.
| SZIMBÓLUM | MŰVELET |
| not | negáció |
| and | logikai és |
| or | logiaki vagy |
| SZIMBÓLUM | MŰVELET |
| = | egyenlőség (számokon) |
| (< ) | kisebb, mint |
| (<= ) | kisebbegyenlő |
| (> ) | nagyobb, mint |
| (>= ) | nagyobbegyenlő |
| eq? | az argumentumok egyenértékűek |
| eqv? | az argumentumok ekvivalensek |
| equal? | az argumentumok strukturáltak, és a tartalmuk megegyezik |
A feltételes kifejezések a következő formában írandók:
A feltétel logikai, míg a then- és az else-kifejezés bármilyen kifejezés lehet. Ha a feltétel igaz, a then-kifejezést, ellenkező esetben az else-kifejezést adja vissza. Például:
A második példában a lista a then-kifejezés, a (cdr list) az else. Használható egy másik feltételes kifejezés is, ami a case-kifejezéseknek felel meg, itt több feltétel-eredmény párt adhatunk meg. Megadásának két módja van:
Az alábbi feltételes kifejezések ekvivalensek.
A Scheme nem támogatja a funkcionális stílusú interaktív programozást, mivel az input nem mint paraméter adódik át, hanem a beépített read függvény ismételt alkalmazásával. Például:
a 3 és egy a bemenetről beolvasott szám összegét adja vissza. A read ismételt hívasa a következő elemet adja vissza a standard bemenetről, tehát nem valódi függvény. A display függvény kiírja az argumentumát a standard kimenetre. Például:
kiírja az előző függvény eredményét. A következő program pedig példa interaktív programra. Promptol, majd beolvas egy értéket a standard bemenetről.