From 4bfece04a30f8ba5b3f2a2396a85fafd11d978c7 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 19 Nov 2016 11:29:35 +0000 Subject: [PATCH] Issue #137 - added the `include` macro --- CHANGELOG.md | 1 + scheme/read.sld | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) 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