! Copyright (C) 2004, 2006 Chris Double, Matthew Willis.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays effects fry generalizations kernel math
-namespaces parser effects.parser sequences words ;
+USING: accessors effects.parser fry generalizations kernel
+sequences words ;
IN: promises
TUPLE: promise quot forced? value ;
dup forced?>> [
dup quot>> call( -- value ) >>value
t >>forced?
- ] unless
- value>> ;
+ ] unless value>> ;
: make-lazy-quot ( quot effect -- quot )
in>> length '[ _ _ ncurry <promise> ] ;
SYNTAX: LAZY:
- (:) [ make-lazy-quot ] [ 2nip ] 3bi define-declared ;
+ (:) [ make-lazy-quot ] keep define-declared ;