CHAPTER 1. INTRODUCTION using .net todevelop ean/ucc-13 for asp.net web,windows application 2 of 5 Industrial code restricted to these Visual Studio .NET UPC-13 should be generally portable. Structures such as Unix are more OS-speci c but still general enough to be available on a variety of systems.

Structures such as the Posix structure provide an interface to a particular OS in detail; it would be unlikely that an implementation would provide this structure unless the underlying OS were a version of POSIX. Finally, an implementation may choose to provide additional structures containing bindings for all of the types and functions supported by a given OS. When two structures both de ne a type that has the same meaning, e.

g., both the OS and Posix.Error structures de ne a syserror type, then these types should be equivalent or there should be an effective way to map between the types.

Implementations should preserve lower-level information. For example, on a POSIX system, if a program calls OS.Process.

exit(st), where Posix.Process.fromStatus(st) evaluates to Posix.

Process.W_EXITSTATUS(v), then the program should exit using the call Posix.Process.

exit(v). Most OS interfaces involve certain speci ed values, such as the platform IDs speci ed in Windows.Config or the error values given in Posix.

Error. Any static list is bound to be incomplete, either due to changes over time or from variations among implementations. To allow for differences and extensibility, the Library typically does not use a datatype for these types; it allows implementations to generate values not speci ed in the signature; and, when possible, it will allow the programmer access to the primitive representation of such values.

Conforming implementations of the SML Basis Library can not extend the signatures given by the Library.. Miscellany
Functional arguments tha EAN13 for .NET t are evaluated solely for their side effects should have a return type of unit. For example, the list application function has the type:.

val app : ( a -> unit) -> a list -> unit
It is also recommended t ean13+5 for .NET hat implementations generate a warning message when an expression on the left-hand side of a semicolon in a sequence expression (i.e.

, e1 in (e1 ; e2 )) does not have unit type. The use and need for exceptions should be limited. If possible, the type of an argument should prevent an exceptional condition from arising.

Thus, rather than have Posix.FileSys.openf return an int value, as its analogue does in C, the Library uses the Posix.

FileSys.file_desc type. In cases where multiple function arguments have the same type, opening the possibility that the programmer may switch them, the Library employs SML records, as with OS.

FileSys.rename. The avoidance of exceptions is particularly apparent in functions that parse character input to.

1.2. DOCUMENTATION CONVENTIONS
create a value, which un EAN/UCC-13 for .NET iformly return a value of NONE to indicate incorrect input rather than raising exceptions. If a curried function can raise an exception, the exception should be raised as soon as suf cient arguments are available to determine that the exception should be raised.

Thus, given a function. val gen : int -> string -> string
that raises an exception visual .net GS1-13 if the rst argument is negative, the evaluation of gen 1 should trigger the exception. SML is a value-oriented language which discourages the gratuitous use of state.

Thus, the Library tries to minimize the use of state. In particular, we note that, although the Library allows imperative-style input, it provides stream-based input with unbounded lookahead and many of the routines for converting characters to values work most naturally in this style. The language does allow functions to have side effects.

To take this fact into account, the Library requires that the implementations of higher-order functions over aggregates invoke their function-valued arguments at most once per element. Whenever possible, structures speci ed as signature instances are matched opaquely, so that all types are abstract unless explicitly speci ed in the signature or any associated where type clauses. 1.

2 Documentation conventions. This section describes t he conventions used in this document. These include the layout of the manual pages, notational conventions, and liberties that we have taken with the SML syntax and semantics to make the speci cation clearer. When applicable in multiple contexts, some information is repeated.

We felt it was better to accept some redundancy rather than to force the reader to glean information scattered all over the document. 1.2.

1 Organization of the manual pages The bulk of the SML Basis Library speci cation consists of manual pages specifying the signature and semantics of the Basis modules. These pages are organized in alphabetical order. Each manual page typically describes a single signature and the structure or structures that implement it.

A manual page, which is typically comprised of several physical pages, is organized into at most ve sections. The rst of these is the Synopsis, which lists the signature, structure, and functor names covered by the manual page. With the exception of manual pages that cover functors, which can have both argument and result signatures,.