Handbook
Glossary
force ( promise -- value )
Vocabulary
promises
Inputs
promise
a promise object
Outputs
value
a factor object
Word description
Calls the quotation associated with the promise if it has not been called before, and returns the value. If the promise has been forced previously, returns the value from the previous call.
Definition
USING:
accessors
combinators
continuations
kernel
;
IN:
promises
:
force
( promise -- value )
dup
status>>
{
{
+error+
[
value>>
throw
]
}
{
+value+
[
value>>
]
}
{
+unforced+
[
dup
[
quot>>
( -- value )
call-effect
>>value
+value+
>>status
value>>
]
[
>>value
+error+
>>status
value>>
throw
]
recover
]
}
}
case
;