src/Pure/library.ML
changeset 16869 bc98da5727be
parent 16842 5979c46853d1
child 16878 07213f0e291f
equal deleted inserted replaced
16868:eaafda56b14c 16869:bc98da5727be
    89   val single: 'a -> 'a list
    89   val single: 'a -> 'a list
    90   val append: 'a list -> 'a list -> 'a list
    90   val append: 'a list -> 'a list -> 'a list
    91   val apply: ('a -> 'a) list -> 'a -> 'a
    91   val apply: ('a -> 'a) list -> 'a -> 'a
    92   val fold: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    92   val fold: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    93   val fold_rev: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    93   val fold_rev: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    94   val fold_yield: ('a -> 'b -> 'c * 'b) -> 'a list -> 'b -> 'c list * 'b
    94   val fold_map: ('a -> 'b -> 'c * 'b) -> 'a list -> 'b -> 'c list * 'b
    95   val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list
    95   val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list
    96   val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a
    96   val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a
    97   val foldln: ('a * int -> 'b -> 'b) -> 'a list -> 'b -> 'b
    97   val foldln: ('a * int -> 'b -> 'b) -> 'a list -> 'b -> 'b
    98   val unflat: 'a list list -> 'b list -> 'b list list
    98   val unflat: 'a list list -> 'b list -> 'b list list
    99   val splitAt: int * 'a list -> 'a list * 'a list
    99   val splitAt: int * 'a list -> 'a list * 'a list
   477   let
   477   let
   478     fun fold_aux [] y = y
   478     fun fold_aux [] y = y
   479       | fold_aux (x :: xs) y = f x (fold_aux xs y);
   479       | fold_aux (x :: xs) y = f x (fold_aux xs y);
   480   in fold_aux end;
   480   in fold_aux end;
   481 
   481 
   482 fun fold_yield f =
   482 fun fold_map f =
   483   let
   483   let
   484     fun fold_aux [] y = ([], y)
   484     fun fold_aux [] y = ([], y)
   485       | fold_aux (x :: xs) y =
   485       | fold_aux (x :: xs) y =
   486           let
   486           let
   487             val (x', y') = f x y;
   487             val (x', y') = f x y;