From: Chris Hanson Date: Thu, 7 May 1987 00:09:08 +0000 (+0000) Subject: Split off application of result from main body of matcher to X-Git-Tag: 20090517-FFI~13554 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=847baa230835e31f365d94b7c37d28323bc118fc;p=mit-scheme.git Split off application of result from main body of matcher to facilitate timing measurements. --- diff --git a/v7/src/compiler/base/pmlook.scm b/v7/src/compiler/base/pmlook.scm index 0b2c2a92f..73381e9c7 100644 --- a/v7/src/compiler/base/pmlook.scm +++ b/v7/src/compiler/base/pmlook.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/pmlook.scm,v 1.3 1987/04/21 23:52:08 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/pmlook.scm,v 1.4 1987/05/07 00:09:08 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -63,10 +63,13 @@ MIT in each case. |# (eqv? pattern instance))) (and (not (null? entries)) (or (and (match (caar entries) instance) - (apply (cdar entries) values)) + (pattern-lookup/bind (cdar entries) values)) (lookup-loop (cdr entries) '())))) (lookup-loop entries '()))) +(define (pattern-lookup/bind binder values) + (apply binder values)) + (set! pattern-variables (named-lambda (pattern-variables pattern) (let ((variables '()))