summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Price <ianprice90@googlemail.com>2014-07-31 16:05:58 +0100
committerIan Price <ianprice90@googlemail.com>2014-07-31 16:05:58 +0100
commitb072b8e6924bb1a05ffb66bcbde30b375df5443f (patch)
tree069c6ac0bf29f5f6bb08980e8802009cf4288eaa
parent8857e271d810623868509f837d17613195f6528c (diff)
downloadguile-b072b8e6924bb1a05ffb66bcbde30b375df5443f.tar.gz
Provide curried version of define*-public.
* module/ice-9/curried-definitions.scm (define*-public): New macro.
-rw-r--r--module/ice-9/curried-definitions.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/module/ice-9/curried-definitions.scm b/module/ice-9/curried-definitions.scm
index fa369906c..7545338e3 100644
--- a/module/ice-9/curried-definitions.scm
+++ b/module/ice-9/curried-definitions.scm
@@ -17,7 +17,8 @@
(define-module (ice-9 curried-definitions)
#:replace ((cdefine . define)
(cdefine* . define*)
- define-public))
+ define-public
+ define*-public))
(define-syntax cdefine
(syntax-rules ()
@@ -44,3 +45,13 @@
(begin
(define name val)
(export name)))))
+
+(define-syntax define*-public
+ (syntax-rules ()
+ ((_ (head . rest) body body* ...)
+ (define*-public head
+ (lambda* rest body body* ...)))
+ ((_ name val)
+ (begin
+ (define* name val)
+ (export name)))))