From 95eb0f696ba2347acfd8f883686eef47864f7409 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 23 Oct 2008 05:28:04 -0500 Subject: [PATCH] Rice --- core/generic/standard/engines/tag/tag.factor | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/generic/standard/engines/tag/tag.factor b/core/generic/standard/engines/tag/tag.factor index 5bb5b42243..e27498b492 100644 --- a/core/generic/standard/engines/tag/tag.factor +++ b/core/generic/standard/engines/tag/tag.factor @@ -43,17 +43,19 @@ C: hi-tag-dispatch-engine : num-hi-tags ( -- n ) num-types get num-tags get - ; : hi-tag-number ( class -- n ) - "type" word-prop num-tags get - ; + "type" word-prop ; : hi-tag-quot ( -- quot ) - \ hi-tag def>> num-tags get [ fixnum-fast ] curry compose ; + \ hi-tag def>> ; M: hi-tag-dispatch-engine engine>quot - methods>> engines>quots* [ >r hi-tag-number r> ] assoc-map + methods>> engines>quots* [ >r "type" word-prop r> ] assoc-map [ picker % hi-tag-quot % [ linear-dispatch-quot ] [ + num-tags get , \ fixnum-fast , + [ >r num-tags get - r> ] assoc-map num-hi-tags direct-dispatch-quot ] if-small? % ] [ ] make ;