SCM Repository
[smlnj] / sml / trunk / src / system / Basis / Implementation / option.sml |
View of /sml/trunk/src/system/Basis/Implementation/option.sml
Parent Directory
|
Revision Log
Revision 416 -
(download)
(annotate)
Fri Sep 3 23:50:31 1999 UTC (21 years, 6 months ago) by monnier
File size: 690 byte(s)
Fri Sep 3 23:50:31 1999 UTC (21 years, 6 months ago) by monnier
File size: 690 byte(s)
Initial revision
(* option.sml * * COPYRIGHT (c) 1997 AT&T Labs Research. *) structure Option : OPTION = struct open Assembly (* for type 'a option *) exception Option fun getOpt (SOME x, y) = x | getOpt (NONE, y) = y fun isSome (SOME _) = true | isSome NONE = false fun valOf (SOME x) = x | valOf _ = raise Option fun filter pred x = if (pred x) then SOME x else NONE fun join (SOME opt) = opt | join NONE = NONE fun map f (SOME x) = SOME(f x) | map f NONE = NONE fun mapPartial f (SOME x) = f x | mapPartial f NONE = NONE fun compose (f, g) x = map f (g x) fun composePartial (f, g) x = mapPartial f (g x) end;
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |