src/Pure/library.ML
changeset 62889 99c7f31615c2
parent 62551 df62e1ab7d88
child 62918 2fcbd4abc021
equal deleted inserted replaced
62888:64f44d7279e5 62889:99c7f31615c2
    46   val not_equal: ''a -> ''a -> bool
    46   val not_equal: ''a -> ''a -> bool
    47   val orf: ('a -> bool) * ('a -> bool) -> 'a -> bool
    47   val orf: ('a -> bool) * ('a -> bool) -> 'a -> bool
    48   val andf: ('a -> bool) * ('a -> bool) -> 'a -> bool
    48   val andf: ('a -> bool) * ('a -> bool) -> 'a -> bool
    49   val exists: ('a -> bool) -> 'a list -> bool
    49   val exists: ('a -> bool) -> 'a list -> bool
    50   val forall: ('a -> bool) -> 'a list -> bool
    50   val forall: ('a -> bool) -> 'a list -> bool
    51   val setmp_thread_data: 'a Universal.tag -> 'a -> 'a -> ('b -> 'c) -> 'b -> 'c
       
    52 
    51 
    53   (*lists*)
    52   (*lists*)
    54   val single: 'a -> 'a list
    53   val single: 'a -> 'a list
    55   val the_single: 'a list -> 'a
    54   val the_single: 'a list -> 'a
    56   val singleton: ('a list -> 'b list) -> 'a -> 'b
    55   val singleton: ('a list -> 'b list) -> 'a -> 'b
   276 
   275 
   277 val exists = List.exists;
   276 val exists = List.exists;
   278 val forall = List.all;
   277 val forall = List.all;
   279 
   278 
   280 
   279 
   281 (* thread data *)
       
   282 
       
   283 fun setmp_thread_data tag orig_data data f x =
       
   284   uninterruptible (fn restore_attributes => fn () =>
       
   285     let
       
   286       val _ = Thread.setLocal (tag, data);
       
   287       val result = Exn.capture (restore_attributes f) x;
       
   288       val _ = Thread.setLocal (tag, orig_data);
       
   289     in Exn.release result end) ();
       
   290 
       
   291 
       
   292 
   280 
   293 (** lists **)
   281 (** lists **)
   294 
   282 
   295 fun single x = [x];
   283 fun single x = [x];
   296 
   284