Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

lazy(3o) [debian man page]

Lazy(3o)							   OCaml library							  Lazy(3o)

NAME
Lazy - Deferred computations. Module Module Lazy Documentation Module Lazy : sig end Deferred computations. type 'a t = 'a lazy_t A value of type 'a Lazy.t is a deferred computation, called a suspension, that has a result of type 'a . The special expression syntax lazy (expr) makes a suspension of the computation of expr , without computing expr itself yet. "Forcing" the suspension will then compute expr and return its result. Note: lazy_t is the built-in type constructor used by the compiler for the lazy keyword. You should not use it directly. Always use Lazy.t instead. Note: Lazy.force is not thread-safe. If you use this module in a multi-threaded program, you will need to add some locks. Note: if the program is compiled with the -rectypes option, ill-founded recursive definitions of the form let rec x = lazy x or let rec x = lazy(lazy(...(lazy x))) are accepted by the type-checker and lead, when forced, to ill-formed values that trigger infinite loops in the garbage collector and other parts of the run-time system. Without the -rectypes option, such ill-founded recursive definitions are rejected by the type-checker. exception Undefined val force : 'a t -> 'a === force x forces the suspension x and returns its result. If x has already been forced, Lazy.force x returns the same value again with- out recomputing it. If it raised an exception, the same exception is raised again. Raise Undefined if the forcing of x tries to force x itself recursively. === val force_val : 'a t -> 'a force_val x forces the suspension x and returns its result. If x has already been forced, force_val x returns the same value again without recomputing it. Raise Undefined if the forcing of x tries to force x itself recursively. If the computation of x raises an exception, it is unspecified whether force_val x raises the same exception or Undefined . val lazy_from_fun : (unit -> 'a) -> 'a t lazy_from_fun f is the same as lazy (f ()) but slightly more efficient. val lazy_from_val : 'a -> 'a t lazy_from_val v returns an already-forced suspension of v This is for special purposes only and should not be confused with lazy (v) . val lazy_is_val : 'a t -> bool lazy_is_val x returns true if x has already been forced and did not raise an exception. OCamldoc 2012-06-26 Lazy(3o)

Check Out this Related Man Page

Printexc(3o)							   OCaml library						      Printexc(3o)

NAME
Printexc - Facilities for printing exceptions. Module Module Printexc Documentation Module Printexc : sig end Facilities for printing exceptions. val to_string : exn -> string Printexc.to_string e returns a string representation of the exception e . val print : ('a -> 'b) -> 'a -> 'b Printexc.print fn x applies fn to x and returns the result. If the evaluation of fn x raises any exception, the name of the exception is printed on standard error output, and the exception is raised again. The typical use is to catch and report exceptions that escape a func- tion application. val catch : ('a -> 'b) -> 'a -> 'b Printexc.catch fn x is similar to Printexc.print , but aborts the program with exit code 2 after printing the uncaught exception. This function is deprecated: the runtime system is now able to print uncaught exceptions as precisely as Printexc.catch does. Moreover, calling Printexc.catch makes it harder to track the location of the exception using the debugger or the stack backtrace facility. So, do not use Printexc.catch in new code. val print_backtrace : Pervasives.out_channel -> unit Printexc.print_backtrace oc prints an exception backtrace on the output channel oc . The backtrace lists the program locations where the most-recently raised exception was raised and where it was propagated through function calls. Since 3.11.0 val get_backtrace : unit -> string Printexc.get_backtrace () returns a string containing the same exception backtrace that Printexc.print_backtrace would print. Since 3.11.0 val record_backtrace : bool -> unit Printexc.record_backtrace b turns recording of exception backtraces on (if b = true ) or off (if b = false ). Initially, backtraces are not recorded, unless the b flag is given to the program through the OCAMLRUNPARAM variable. Since 3.11.0 val backtrace_status : unit -> bool Printexc.backtrace_status() returns true if exception backtraces are currently recorded, false if not. Since 3.11.0 val register_printer : (exn -> string option) -> unit Printexc.register_printer fn registers fn as an exception printer. The printer should return None or raise an exception if it does not know how to convert the passed exception, and Some s with s the resulting string if it can convert the passed exception. Exceptions raised by the printer are ignored. When converting an exception into a string, the printers will be invoked in the reverse order of their registrations, until a printer returns a Some s value (if no such printer exists, the runtime will use a generic printer). Since 3.11.2 OCamldoc 2012-06-26 Printexc(3o)
Man Page