From ae3f906d244400c207c40bdd4405eab3e6fb3651 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 17 Aug 2016 23:41:17 -0400 Subject: [PATCH] Do not require formals-type --- scheme/cyclone/util.sld | 15 +++++++-------- scheme/eval.sld | 8 ++++---- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 8bba62a4..36f184cb 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -131,18 +131,17 @@ (else (pair->list args)))) ;; Take arguments for a lambda and pack them depending upon lambda type -(define (pack-lambda-arguments formals-type formals args) - (case - formals-type - ((args:varargs) +(define (pack-lambda-arguments formals args) + (cond + ((symbol? formals) (list args)) - ((args:fixed-with-varargs) + ((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)))) - (else - args))) + (append areq (list aopt)))))) (define (length/obj l) (let loop ((lis l) diff --git a/scheme/eval.sld b/scheme/eval.sld index c3b3e2f5..e7e0022a 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -482,13 +482,13 @@ (apply-primitive-procedure proc args)) ((compound-procedure? proc) ((procedure-body proc) + (let (( (env:extend-environment - ;; TODO: need to pass lambdas as a list (depending on type), and - ;; split up args accordingly (create a list for varargs) - (formals->list (procedure-parameters proc)) - args + ;(pack-lambda-arguments + ;(procedure-parameters proc) + args ;) (procedure-environment proc)))) ((procedure? proc) (apply