diff --git a/basis/hashtables/identity/identity.factor b/basis/hashtables/identity/identity.factor index 0741a53bda..e8dfd509af 100644 --- a/basis/hashtables/identity/identity.factor +++ b/basis/hashtables/identity/identity.factor @@ -1,6 +1,6 @@ ! (c)2010 Joe Groff bsd license -USING: accessors arrays assocs hashtables hashtables.wrapped -kernel parser sequences vocabs.loader ; +USING: accessors assocs hashtables hashtables.wrapped kernel +parser vocabs.loader ; IN: hashtables.identity TUPLE: identity-wrapper < wrapped-key ; diff --git a/basis/hashtables/wrapped/prettyprint/prettyprint.factor b/basis/hashtables/wrapped/prettyprint/prettyprint.factor index 038a53e140..d59039f149 100644 --- a/basis/hashtables/wrapped/prettyprint/prettyprint.factor +++ b/basis/hashtables/wrapped/prettyprint/prettyprint.factor @@ -1,9 +1,8 @@ ! Copyright (C) 2011 John Benediktsson ! See http://factorcode.org/license.txt for BSD license -USING: assocs continuations hashtables.wrapped kernel -namespaces prettyprint.backend prettyprint.config -prettyprint.custom ; +USING: assocs continuations hashtables.wrapped namespaces +prettyprint.config prettyprint.custom ; IN: hashtables.wrapped.prettyprint diff --git a/basis/hashtables/wrapped/wrapped.factor b/basis/hashtables/wrapped/wrapped.factor index 09a4d94fba..8c3b47da70 100644 --- a/basis/hashtables/wrapped/wrapped.factor +++ b/basis/hashtables/wrapped/wrapped.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2011 John Benediktsson ! See http://factorcode.org/license.txt for BSD license -USING: accessors arrays assocs fry hashtables kernel parser -sequences vocabs.loader ; +USING: accessors arrays assocs hashtables kernel sequences +vocabs.loader ; IN: hashtables.wrapped diff --git a/basis/locals/locals.factor b/basis/locals/locals.factor index c7b05e0120..4cb3466667 100644 --- a/basis/locals/locals.factor +++ b/basis/locals/locals.factor @@ -21,6 +21,8 @@ SYNTAX: MACRO:: (::) define-macro ; SYNTAX: MEMO:: (::) define-memoized ; +SYNTAX: IDENTITY-MEMO:: (::) define-identity-memoized ; + { "locals.macros" "locals.fry" diff --git a/basis/memoize/memoize.factor b/basis/memoize/memoize.factor index 43d447d7c0..1817cf83a9 100644 --- a/basis/memoize/memoize.factor +++ b/basis/memoize/memoize.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: kernel hashtables sequences sequences.private arrays words namespaces make parser effects.parser math assocs effects -definitions quotations summary accessors fry ; +definitions quotations summary accessors fry hashtables.identity ; IN: memoize -: define-memoized ( word quot effect -- ) - [ drop "memo-quot" set-word-prop ] - [ 2drop H{ } clone "memoize" set-word-prop ] +: (define-memoized) ( word quot effect hashtable -- ) + [ [ drop "memo-quot" set-word-prop ] ] dip + '[ 2drop _ "memoize" set-word-prop ] [ [ [ dup "memoize" word-prop ] 2dip make-memoizer ] keep define-declared ] 3tri ; +: define-memoized ( word quot effect -- ) + H{ } clone (define-memoized) ; + +: define-identity-memoized ( word quot effect -- ) + IH{ } clone (define-memoized) ; + SYNTAX: MEMO: (:) define-memoized ; +SYNTAX: IDENTITY-MEMO: (:) define-identity-memoized ; + PREDICATE: memoized < word "memoize" word-prop ; M: memoized definer drop \ MEMO: \ ; ;