#lang racket (define L '(1 2 3 4 5)) ; suma elementelor dintr-o listă (define sumList ; leg numele sumList (lambda ; la o funcție (L) ; cu un parametru formal L (if (null? L) ; pentru o listă vidă rezultatul este zero 0 (+ ; altfel, adun (car L) ; primul element (sumList (cdr L)) ; suma unei liste formată din restul elementelor lui L ) ; în loc de car/cdr pot folosi și first / rest ) )) ; exemplu (sumList L) (define insert (lambda (e L idx) (cond ((zero? idx) (cons e L)) ; am ajuns la punctul de inserție ((null? L) (list e)) ; s-a terminat lista, inserez la sfârșit (#t; altfel (cons (car L) (insert e (cdr L) (sub1 idx)))) ; inserez în acest punct ))) (insert 6 L 2) (insert 6 L 4) (insert 6 L 10)