--- /dev/null
+;; 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)))))))
+