(require-library holes simple-tests) (import holes simple-tests) (pe '(->proc (+ !1! 5))) (pe '(->proc '(1 . 2))) (pe '(->proc (+ 5 (* !! 2)))) (pe '(->proc (!! 1 2 3))) (pe '(->proc '(1 2 #(3 4 !! 6)))) (print "\n\n") (define-test (holes?) (check (procedure? ##(vector 1 !!)) (procedure? ##(lambda (x) (- x !!))) (= ((##(lambda (x) (- x !!)) 2) 3) 1) (= (##5) 5) (equal? (call-with-values ##(values 1 2 3) list) '(1 2 3)) (= (##(+ !1! 5) 2) 7) (equal? (##'(1 . 2)) '(1 . 2)) (= (##(+ 5 (* !! 2)) 7) 19) (= (##(!! 1 2 3) *) 6) (= (##(!! 1 2 3) +) 6) (equal? (##(list 1 2 (vector 3 4 !! 6)) 5) '(1 2 #(3 4 5 6))) (equal? (##(list 1 2 #(3 4 !! 6))) ; note that the third arg of list is quoted ; hence there are no holes '(1 2 #(3 4 !! 6))) (equal? (##(vector 1 2 !!) 3) #(1 2 3)) (equal? (##(list 1 !! 2 !1!) 3 4) '(1 3 2 4)) (equal? (##(list 1 !! 2 !!) 3) '(1 3 2 3)) (equal? (##(list 1 !! 2 (vector !!)) 3) '(1 3 2 #(3))) (equal? (##(list !! !1! 2 (vector !!)) 1 2) '(1 2 2 #(1))) )) (compound-test (HOLES) (holes?) )