X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=course%2Flists.lsp;fp=course%2Flists.lsp;h=273dee0dfd8f0fcd0b4812f8509b74a2c2e12d9c;hb=15c46339dbd746558fb5b82c2823e0ede2cc7bfd;hp=0000000000000000000000000000000000000000;hpb=a5273e70fe54850ee147232848c009ede063ee7b;p=TD_LISP.git diff --git a/course/lists.lsp b/course/lists.lsp new file mode 100755 index 0000000..273dee0 --- /dev/null +++ b/course/lists.lsp @@ -0,0 +1,45 @@ +#!/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)