(S)ML-97 Examples

LA home
   High O.Fn
[Basics] of SML.
Hello world:
print "hello world\n"

(* SML hello world program, LA 11/4/2005 *)

ne> sml
Standard ML of ...
- use "hello.sml";
[opening hello.sml]
hello world
val it = () : unit
val it = () : unit
- ne>
open TextIO;        (* i.e. the I/O library *)

fun cat fileName =
    fun f inS =
      if endOfStream inS then
           ( closeIn inS; print "\n" )
      else ( print (inputN(inS, 1));  f inS )
  in f(openIn fileName)

(* e.g. *) cat "cat.sml";

(* Copy file to std output, L.A., 11/4/2005 *)
(* Also see I/O, Ch 4,                      *)
(* Ullman "Elements of ML Programming" 1998 *)

[Big Ints], more than 32- or 64-bits.
[High-Order Functions] accept functions as parameters and/or return functions as results.
[Parser] (recursive descent) for expressions.
[Lazy data types] are not standard in SML but they can be implemented in the language.
[Structures, signatures, functors], struct, sig.
[Continuations] can be used to implement non-standard control mechanisms.
[Fixed-point operator, `Y'], note that Y does not refer to itself within its body, nor does the local function Ggg; one could rewrite Y to consist of only anonymous functions. Also see [λ/Y].
[semantics.toy] direct denotational sematics of a toy imperative language expressed in SML-97

Further Reading:

www #ad:

:: cons
[x1,...] list
[ ] list
@ append
fn =>  &lambda .
: has type

↑ © L. Allison, www.allisons.org/ll/   (or as otherwise indicated).
Created with "vi (Linux)",  charset=iso-8859-1,   fetched Sunday, 03-Mar-2024 02:20:18 UTC.

Free: Linux, Ubuntu operating-sys, OpenOffice office-suite, The GIMP ~photoshop, Firefox web-browser, FlashBlock flash on/off.