From 9a48901ac29ed4c91e399fc23a863b72d7eb8d24 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 17 Aug 2016 18:15:42 -0400 Subject: [PATCH] Issue #21 - Warn if required args are missing --- scheme/cyclone/util.sld | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 36f184cb..416a2607 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -138,10 +138,14 @@ ((list? formals) args) (else - (let* ((num-req-args (length/obj formals)) - (areq (take args num-req-args)) - (aopt (list-tail args num-req-args))) - (append areq (list aopt)))))) + (let ((num-req-args (length/obj formals)) + (num-args (length args))) + (if (> num-req-args num-args) + (error "Too few arguments supplied" formals args)) + (append + (take args num-req-args) ;; Required args + (list (list-tail args num-req-args)) ;; Optional args + ))))) (define (length/obj l) (let loop ((lis l)