General
structureThe structure General defines exceptions, datatypes and functions that are used throughout the SML Standard 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.
Opening General may cause the identifiers =
and <>
to be rebound. A compiler must issue a warning if this happens.
We include the definition of the ref
type here, rather than in a separate signature, since the Ref
structure would essentially be trivial.
signature GENERAL
structure General
: GENERAL
eqtype unit
type exn
eqtype 'a ref
exception Bind
exception Match
exception Subscript
exception Size
exception Overflow
exception Domain
exception Div
exception Chr
exception Fail of string
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
eqtype 'a ref
exception Bind
val
binding.
exception Match
case
expression or function application.
exception Subscript
exception Size
exception Overflow
Abs
, Exp
, Mod
, Neg
, Prod
, Quot
, and Sum
exceptions required by the Definition).
exception Domain
Sqrt
and Ln
exceptions required by the Definition).
exception Div
exception Chr
exception Fail
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 May 15, 1996
Copyright © 1996 AT&T