X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Fscheme-library-1-essential.scm;fp=src%2Fscheme-library-1-essential.scm;h=ded8412b5612b4db2e4cc1042f81843cf295cc64;hb=41b469d050586a05cd43fdd4c78755616af3f7b4;hp=0000000000000000000000000000000000000000;hpb=34c8e9e803a2257d9234b1381ad4eef725e224da;p=scheme.forth.jl.git diff --git a/src/scheme-library-1-essential.scm b/src/scheme-library-1-essential.scm new file mode 100644 index 0000000..ded8412 --- /dev/null +++ b/src/scheme-library-1-essential.scm @@ -0,0 +1,26 @@ +;; MISC ESSENTIAL PROCEDURES + +(define list + (lambda args args)) + +(define map + (lambda (proc l) + (if (null? l) + '() + (cons (proc (car l)) (map proc (cdr l)))))) + +(define join-lists + (lambda (l1 l2) + (if (null? l1) + l2 + (cons (car l1) (join-lists (cdr l1) l2))))) + +; Append an arbitrary number of lists together +(define append + (lambda lists + (if (null? lists) + () + (if (null? (cdr lists)) + (car lists) + (join-lists (car lists) (apply append (cdr lists))))))) +