Patch for collects/tests/mzscheme/syntax.ss attached.

Dave

Dave Herman wrote:
Attached is a patch for collects/scribblings/reference/syntax.scrbl that documents the quasiquote behavior. I'll create some new quasiquote tests and send a patch for that tomorrow.

Dave


On Feb 6, 2009, at 11:52 PM, Dave Herman wrote:

Oops --- I meant to vote for "1", not "2".

Doesn't that mean that some hash tables that should have literal
representations won't?

Yes, at least in terms of quasiquote. That's a good reason against 2.

Okay, patch attached. Not sure if I did this right but hopefully it helps.

Dave
<qq-and-or.patch>
_________________________________________________
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-dev


--- /home/dherman/Desktop/syntax.ss     2009-02-08 14:06:49.743750000 -0500
+++ syntax.ss   2009-02-08 14:05:32.353125000 -0500
@@ -651,6 +651,28 @@
 (test '(quasiquote (quasiquote (quasiquote (unquote (unquote (unquote x)))))) 
'qq ````,,,x)
 (test '(quasiquote (quasiquote (quasiquote (unquote (unquote (unquote 5)))))) 
'qq ````,,,,x)
 
+(test '#hash() 'qq `#hash())
+(test '#hash(("apple" . 1) ("banana" . 2) ("coconut" . 3))
+      'qq
+      `#hash(("apple" . 1) ("banana" . 2) ("coconut" . 3)))
+(test '#hash(("apple" . 1) ("banana" . 2) ("coconut" . 3))
+      'qq
+      `#hash(("apple" . ,1) ("banana" . ,(add1 1)) ("coconut" . ,(+ 1 2))))
+(test '#hash(("foo" . (1 2 3 4 5)))
+      'qq
+      `#hash(("foo" . (1 2 ,(+ 1 2) 4 5))))
+(test '#hash(("foo" . (1 2 3 4 5)))
+      'qq
+      `#hash(("foo" . (1 2 ,@(list 3 4 5)))))
+(test '#hash((,(read) . 1) (,(+ 1 2) . 3))
+      'qq
+      `#hash((,(read) . 1) (,(+ 1 2) . ,(+ 1 2))))
+(test '#hash((,(read) . 2))
+      'qq
+      `#hash((,(read) . 1) (,(read) . 2)))
+(syntax-test #'`#hash(("foo" . ,@(list 1 2 3 4 5))))
+(error-test #'(read (open-input-string "`#hash((foo ,@(list 1 2 3 4 5)))")) 
exn:fail:read?)
+
 (test '(quasiquote (unquote result)) 'qq `(quasiquote ,result))
 (test (list 'quasiquote car) 'qq `(,'quasiquote ,car))
 
_________________________________________________
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to