Welcome to DrRacket, version 8.4 [cs]. Language: racket, with debugging; memory limit: 128 MB. > 1 întregi 1 > 1.1 floats 1.1 > 1/2 fracții 1/2 > "abc" strings "abc" > 'abc literali 'abc > abc fără apostrof, racket încearcă evaluarea numelui abc (consideră că este o variabilă) . . abc: undefined; cannot reference an identifier before its definition > 'abc pentru a nu evalua ceva care arată a identificator, folosim quote 'abc > #t boolean #t > #f #f > (+ 1 2 3) apelul funcției + 6 > (list 1 2 3) construcție listă prin apelul funcției list '(1 2 3) > '(1 2 3) construcție listă prin specificare ca S-listă, neevaluată '(1 2 3) > (1 2 3) Racket încearcă evaluarea ca un apel de funcție, dar 1 nu este o funcție . . application: not a procedure; expected a procedure that can be applied to arguments given: 1 > '(1 2 3) '(1 2 3) > '(+ 1 2 3) Cu apostrof, orice S-listă rămâne neevaluată '(+ 1 2 3) > (eval '(+ 1 2 3)) O putem evalua ulterior 6 > (cons 'a 'b) Construim o pereche cu funcția cons '(a . b) > '(a . b) '(a . b) > (car (cons 'a 'b)) 'a > (cdr (cons 'a 'b)) 'b > (car '(1 2 3)) lista este văzută ca pereche între primul element... 1 > (cdr '(1 2 3)) ... și restul listei '(2 3) > (rest '(1 2 3)) '(2 3) > (first '(1 2 3)) 1 > '(1 . (2 3)) '(1 2 3) > (cdr (cdr '(2 3))) înlănțuire acces '() > (caddr '(1 2 3)) shorthand pentru (car (cdr (cdr ))) 3 > (length '(1 2 3)) 3 > (cddr '(1 2 3)) '(3) > (append '(1 2 3) '(a b c)) '(1 2 3 a b c) > (if #t 'a 'b) 'a > (if (> 3 2) (cons 'a 'b) 'c) if are mereu 3 argumente '(a . b) >