SMLofNJStructure ================ [source,sml] ---- signature SML_OF_NJ = sig structure Cont: sig type 'a cont val callcc: ('a cont -> 'a) -> 'a val isolate: ('a -> unit) -> 'a cont val throw: 'a cont -> 'a -> 'b end structure SysInfo: sig exception UNKNOWN datatype os_kind = BEOS | MACOS | OS2 | UNIX | WIN32 val getHostArch: unit -> string val getOSKind: unit -> os_kind val getOSName: unit -> string end val exnHistory: exn -> string list val exportFn: string * (string * string list -> OS.Process.status) -> unit val exportML: string -> bool val getAllArgs: unit -> string list val getArgs: unit -> string list val getCmdName: unit -> string end ---- `SMLofNJ` implements a subset of the structure of the same name provided in <:SMLNJ:Standard ML of New Jersey>. It is included to make it easier to port programs between the two systems. The semantics of these functions may be different than in SML/NJ. * `structure Cont` + implements continuations. * `SysInfo.getHostArch ()` + returns the string for the architecture. * `SysInfo.getOSKind` + returns the OS kind. * `SysInfo.getOSName ()` + returns the string for the host. * `exnHistory` + the same as `MLton.Exn.history`. * `getCmdName ()` + the same as `CommandLine.name ()`. * `getArgs ()` + the same as `CommandLine.arguments ()`. * `getAllArgs ()` + the same as `getCmdName()::getArgs()`. * `exportFn f` + saves the state of the computation to a file that will apply `f` to the command-line arguments upon restart. * `exportML f` + saves the state of the computation to file `f` and continue. Returns `true` in the restarted computation and `false` in the continuing computation.