From fa583a919f270bb1ddf0c9102fa633b10d3dff10 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 16 Jan 2022 12:22:46 +0530 Subject: ccwl: Document default default value of syntax-lambda**. * ccwl/utils.scm (syntax-lambda**): Document default default value. * tests/utils.scm ("default default value of syntax-lambda** unary argument should be #f", "default default value of syntax-lambda** n-ary argument should be the empty list"): New tests. --- ccwl/utils.scm | 3 ++- tests/utils.scm | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ccwl/utils.scm b/ccwl/utils.scm index db74c7f..04938b1 100644 --- a/ccwl/utils.scm +++ b/ccwl/utils.scm @@ -252,7 +252,8 @@ number of positional arguments is passed, a => (#'1 #'2 #'123 (#'1 #'2 #'3)) Like lambda**, syntax-lambda** supports default values for -arguments. For example, +arguments. The default default value for unary arguments is #f, while +that for n-ary arguments is the empty list. For example, ((syntax-lambda** (foo aal #:key vale (pal 9) #:key* naal (irandu 7) (sol 3 2 1)) (list foo aal vale pal naal irandu sol)) diff --git a/tests/utils.scm b/tests/utils.scm index 6b14f29..3970a5c 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -132,6 +132,16 @@ (list foo aal vale pal naal irandu sol)) #'1 #'2 #'#:vale #'123 #'#:naal #'321 #'456))) +(test-equal "default default value of syntax-lambda** unary argument should be #f" + #f + ((syntax-lambda** (#:key foo) + foo))) + +(test-equal "default default value of syntax-lambda** n-ary argument should be the empty list" + '() + ((syntax-lambda** (#:key* foo) + foo))) + ;; We cannot use test-equal to compare syntax objects, since ;; test-equal does not preserve the lexical contexts of the test ;; expressions. -- cgit v1.2.3