--- /dev/null
+#!/usr/bin/env newlisp
+
+(setq L '(1 2 3))
+(println (first L)) ; le premier élément
+(println (rest L)) ; la liste privée du premier élément
+(println (last L)) ; le dernier élément
+
+(println (rest '(1)))
+(println (rest '()))
+; return an error: empty list
+;(println (first '()))
+;(println (last '()))
+
+(define (list-length a-list)
+ (if a-list
+ (+ 1 (list-length (rest a-list)))
+ 0))
+
+(println (list-length L))
+
+(println (length L))
+
+type list ::= empty-list | first * list
+
+(setq x 1)
+(println (+ x 1))
+
+(set 'x 1 'y 2)
+(let ((x 3) (y 4))
+ (println x)
+ (println (list x y)))
+(println "x="x" y="y)
+
+(setq x 3 y 4)
+(let ((x 1) (y 2))
+ (println "x="x" y="y))
+(println "x="x" y="y)
+
+(setq x 3 y 4)
+(let ((y 2))
+ (setq x 5 y 6)
+ (println "x="x" y="y))
+(println "x="x" y="y)
+
+(exit)