In ML, NONE is one of the constructors of the 'a option datatype. Partial functions evaluate to NONE when applied to arguments not in their domain. For example, the function lookup : (int * string) list -> int -> string option may be implemented as follows:
fun lookup nil x = NONE
| lookup (n, s)::t x = if x = n then SOME(s) else lookup t x
For more
details, see the
writeup on the
option datatype.