src/Pure/General/seq.ML
changeset 23178 07ba6b58b3d2
parent 21395 f34ac19659ae
child 25955 94a515ed8a39
equal deleted inserted replaced
23177:3004310c95b1 23178:07ba6b58b3d2
   200   | some => make (fn () => some));
   200   | some => make (fn () => some));
   201 
   201 
   202 fun op APPEND (f, g) x =
   202 fun op APPEND (f, g) x =
   203   append (f x) (make (fn () => pull (g x)));
   203   append (f x) (make (fn () => pull (g x)));
   204 
   204 
   205 fun EVERY fs = foldr THEN succeed fs;
   205 fun EVERY fs = fold_rev (curry op THEN) fs succeed;
   206 fun FIRST fs = foldr ORELSE fail fs;
   206 fun FIRST fs = fold_rev (curry op ORELSE) fs fail;
   207 
   207 
   208 fun TRY f = ORELSE (f, succeed);
   208 fun TRY f = ORELSE (f, succeed);
   209 
   209 
   210 fun REPEAT f =
   210 fun REPEAT f =
   211   let
   211   let