diff --git a/CHANGELOG.md b/CHANGELOG.md index af9423c6..cef0c351 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Features: - Recognize escaped vertical line and hex scalar value characters when reading a string. - Added `current-thread` to SRFI 18. +- Added the `include` macro. Bug Fixes diff --git a/scheme/read.sld b/scheme/read.sld index a906dbec..47f35c46 100644 --- a/scheme/read.sld +++ b/scheme/read.sld @@ -13,9 +13,25 @@ (export read read-all + include ) (begin +(define-syntax include + (er-macro-transformer + (lambda (expr rename compare) + (apply + append + (cons + '(begin) + (map + (lambda (filename) + (call-with-port + (open-input-file filename) + (lambda (port) + (read-all port)))) + (cdr expr))))))) + (define read cyc-read) ;; Extended information for each input port