;; load-file is a simple function that loads the definitions from a file ;; It recursives calls itself, reading one line at a time; on the recursive return, it cons'es ;; all of the lines together in a giant list, which it returns to caller. ;; The "port" parameter is a read port that you pass it. The easiest way to get one is to ;; use the open-input-file built-in function. So: (open-input-file filename) returns you a port to that file. ( define load-file ( lambda ( port ) ( let ( ( nextrec ( read port ) ) ) ( cond ( ( eof-object? nextrec ) '() ) ;; If I've read off the end, return empty list ( else ( let* ( ( nascent-db ( load-file port ) ) ) ;; Recursive call to finish reading file ;; Now add the line read at this level to growing list ( cons nextrec nascent-db ) ) ) ) ) ) )