Add more TD code snippets
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 24 Apr 2017 10:06:37 +0000 (12:06 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 24 Apr 2017 10:06:37 +0000 (12:06 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
functions.lsp [new file with mode: 0755]
lists.lsp

diff --git a/functions.lsp b/functions.lsp
new file mode 100755 (executable)
index 0000000..79c4c55
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/env newlisp
+
+; function addition
+(define (f x y) (+ x y))
+(println (f 1 2))
+
+(define f (lambda (x y) (+ x y)))
+(setq f (lambda (x y) (+ x y)))
+;(set 'f (lambda (x y) (+ x y)))
+(println (f 1 2))
+(println ((lambda (x y) (+ x y)) 1 2))
+
+(exit)
index e11271ce83790a635c00705994704ddd3fc18474..432d9c7b80f8510e6e9aacdd2c7c4faea0889321 100755 (executable)
--- a/lists.lsp
+++ b/lists.lsp
 ;(println (last '()))
 
 (define (list-length a-list)
-  (if a-list
-    (+ 1 (list-length (rest a-list)))
-    0))
+    (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)