src/Pure/library.ML
changeset 18333 b356f7837921
parent 18330 444f16d232a2
child 18359 02a830bab542
equal deleted inserted replaced
18332:e883d1332662 18333:b356f7837921
    49   val the_default: 'a -> 'a option -> 'a
    49   val the_default: 'a -> 'a option -> 'a
    50   val the_list: 'a option -> 'a list
    50   val the_list: 'a option -> 'a list
    51   val if_none: 'a option -> 'a -> 'a
    51   val if_none: 'a option -> 'a -> 'a
    52   val is_some: 'a option -> bool
    52   val is_some: 'a option -> bool
    53   val is_none: 'a option -> bool
    53   val is_none: 'a option -> bool
       
    54   val perhaps: ('a -> 'a option) -> 'a -> 'a
    54 
    55 
    55   exception EXCEPTION of exn * string
    56   exception EXCEPTION of exn * string
    56   exception ERROR
    57   exception ERROR
    57   val try: ('a -> 'b) -> 'a -> 'b option
    58   val try: ('a -> 'b) -> 'a -> 'b option
    58   val can: ('a -> 'b) -> 'a -> bool
    59   val can: ('a -> 'b) -> 'a -> bool
   337   | is_some NONE = false;
   338   | is_some NONE = false;
   338 
   339 
   339 fun is_none (SOME _) = false
   340 fun is_none (SOME _) = false
   340   | is_none NONE = true;
   341   | is_none NONE = true;
   341 
   342 
       
   343 fun perhaps f x =
       
   344   case f x
       
   345    of NONE => x
       
   346     | SOME x' => x';
   342 
   347 
   343 (* exceptions *)
   348 (* exceptions *)
   344 
   349 
   345 exception EXCEPTION of exn * string;
   350 exception EXCEPTION of exn * string;
   346 
   351