result.sml
来自「这是我们参加06年全国开源软件的竞赛作品」· SML 代码 · 共 35 行
SML
35 行
(* result.sml * * COPYRIGHT (c) 1996 AT&T Research. * *)structure Result :> sig type 'a result val result : unit -> 'a result val put : ('a result * 'a) -> unit val putExn : ('a result * exn) -> unit val get : 'a result -> 'a val getEvt : 'a result -> 'a CML.event end = struct structure SV = SyncVar datatype 'a result_val = EXN of exn | RES of 'a type 'a result = 'a result_val SV.ivar fun result () = SV.iVar() fun put (iv, v) = SV.iPut(iv, RES v) fun putExn (iv, ex) = SV.iPut(iv, EXN ex) fun wrap (RES v) = v | wrap (EXN ex) = raise ex fun get iv = wrap(SV.iGet iv) fun getEvt iv = CML.wrap(SV.iGetEvt iv, wrap) end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?