General
structureThe structure General defines exceptions, datatypes and functions that are used throughout the SML Basis Library, and that are useful in a wide range of programs.
All of the types and values defined in General are available unqualified at the top-level.
signature GENERAL
structure General
: GENERAL
eqtype unit
type exn
exception Bind
exception Chr
exception Div
exception Domain
exception Fail of string
exception Match
exception Overflow
exception Size
exception Span
exception Subscript
val exnName : exn -> string
val exnMessage : exn -> string
datatype order = LESS | EQUAL | GREATER
val ! : 'a ref -> 'a
val := : ('a ref * 'a) -> unit
val o : (('b -> 'c) * ('a -> 'b)) -> 'a -> 'c
val before : ('a * unit) -> 'a
val ignore : 'a -> unit
eqtype unit
()
, which is typically used as a trivial argument or as a return value for a side-effecting function.
type exn
exception Bind
val
binding.
exception Chr
exception Div
Mod
exception required by the Definition).
exception Domain
Sqrt
and Ln
exceptions required by the Definition).
exception Fail
exception Match
case
expression or function application.
exception Overflow
Abs
, Exp
, Neg
, Prod
, Quot
, and Sum
exceptions required by the Definition).
exception Size
exception Span
exception Subscript
exnName ex
let exception E1; exception E2 = E1 in exnName E2 end
might evaluate to "E1"
or "E2"
.
exnMessage ex
exnName ex
.
Example:
exnMessage Div = "Div" exnMessage (OS.SysErr ("No such file or directory", NONE)) = "OS.SysErr \"No such file or directory\""
datatype order
! re
re := a
f o g
(f o g) a
is equivalent to f(g a)
.
a before b
ignore a
()
. The purpose of ignore is to discard the result of a computation, returning ()
instead. This is useful, for example, when a higher-order function, such as List.app, requires a function returning unit, but the function to be used returns values of some other type.
Some systems may provide a compatibility mode in which the replaced exceptions (e.g., Abs
, Sqrt
) are provided at top-level as aliases for the new exceptions.
Last Modified February 20, 1997
Comments to John Reppy.
Copyright © 1997 Bell Labs, Lucent Technologies