(import dotted-lambdas simple-tests (chicken condition)) (define-checks (calls verbose? lst (callable '(0 1 2 3)) lst0 (callable '())) (condition-case (lst0 0) ((exn) #f)) #f (lst 0) 0 (lst 3) 3 (condition-case (lst 5) ((exn) #f)) #f (condition-case (lst -1) ((exn) #f)) #f) (define-checks (lambdas verbose?) ((lambda* (xs ...) (list (xs 0) (xs 1) (xs 2))) 1 2 3) '(1 2 3) ((lambda* (x xs ...) (apply list x (xs))) 1 2 3) '(1 2 3) (condition-case ((lambda* (xs ..) xs) 1 2 3) ((exn) #f)) #f (condition-case ((lambda* (xs ....) xs)) ((exn) #f)) #f ((lambda* (xs ...) (xs))) '() ((lambda* (x y zs ...) (list x y (zs 0) (zs 1))) 1 2 3 4) '(1 2 3 4) (condition-case ((lambda* (x y zs ..) (list x y zs)) 1 2 3 4) ((exn) #f)) #f (condition-case ((lambda* (x y zs ....) (list x y zs)) 1 2) ((exn) #f)) #f ((lambda* (a b) (list a b)) 1 2) '(1 2) ((lambda* (as ...) (as)) 1 2 3) '(1 2 3) ((lambda* (as ...) (as))) '()) (check-all DOTTED-LAMBDAS (calls) (lambdas) )