! Copyright (C) 2007, 2010 Slava Pestov, Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs definitions effects
-effects.parser fry hashtables.identity kernel kernel.private
-math sequences sequences.private words ;
+USING: accessors arrays assocs definitions effects hashtables
+kernel kernel.private math sequences sequences.private words ;
IN: memoize
<PRIVATE
PREDICATE: memoized < word "memoize" word-prop >boolean ;
-M: memoized definer drop \ MEMO: \ ; ;
+M: memoized definer
+ def>> 3 from-tail swap ?nth hashtable?
+ \ MEMO: \ IDENTITY-MEMO: ? \ ; ;
M: memoized definition "memo-quot" word-prop ;