From 58e2809330e2373b5b86f1b135d393a4b5d43afd Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 19 Dec 2018 14:24:20 -0500 Subject: [PATCH] Use hashsets --- scheme/cyclone/primitives.sld | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 9b5f71f3..a77cfbe1 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -8,7 +8,9 @@ ;;;; (define-library (scheme cyclone primitives) (import (scheme base) + (scheme cyclone hashset) ;(scheme write) + (srfi 69) ) (export prim? @@ -47,9 +49,11 @@ (define (prim:udf? exp) (memq exp *udf-prims*)) + (define *hs-prims* (hs-create)) + ; prim? : exp -> boolean (define (prim? exp) - (or (memq exp *primitives*) + (or (hs-member? *hs-prims* exp) (memq exp *udf-prims*))) ;; Does primitive mutate any of its arguments? @@ -1046,4 +1050,6 @@ (cdr udf)) ;; No match; keep original function (else func-sym)))) + + (hs-add-all! *hs-prims* *primitives*) ))