src/Pure/Concurrent/lazy_sequential.ML
changeset 44386 4048ca2658b7
parent 44198 a41ea419de68
child 44387 0f0ba362ce50
--- a/src/Pure/Concurrent/lazy_sequential.ML	Tue Aug 23 12:20:12 2011 +0200
+++ b/src/Pure/Concurrent/lazy_sequential.ML	Tue Aug 23 15:48:41 2011 +0200
@@ -45,6 +45,14 @@
   in result end;
 
 fun force r = Exn.release (force_result r);
+fun map f x = lazy (fn () => f (force x));
+
+
+(* future evaluation *)
+
+fun future params x =
+  if is_finished x then Future.value_result (force_result x)
+  else (singleton o Future.forks) params (fn () => force x);
 
 end;
 end;