SML# Document
Version 4.1.0
(Nov, 2024)
Contents
- I Overview
-
II Tutorials
- 5 Installing SML#
- 6 Setting up SML# programming environment
-
7 Introduction to ML programming
- 7.1 About the ML language family
- 7.2 Declarative programming
- 7.3 Representing computation by composing expressions
- 7.4 Constants literals and built-in primitives
- 7.5 Type bool and conditional expressions
- 7.6 Compound expressions and function definitions
- 7.7 Recursive functions
- 7.8 Functions with multiple arguments
- 7.9 Function application syntax
- 7.10 Higher-order functions
- 7.11 Using higher-order functions
- 7.12 Imperative features of ML
- 7.13 Mutable memory reference types
- 7.14 Left-to-right applicative order evaluation
- 7.15 Procedural control
- 7.16 Loop and tail recursion
- 7.17 let expressions
- 7.18 List data type
- 7.19 Principle in composing expressions
- 7.20 Polymorphic functions
- 8 SML# feature: record polymorphism
- 9 SML# feature: other type system extensions
- 10 SML# feature: direct interface to C
- 11 SML# feature: Multithread programming
- 12 SML# feature: seamless SQL integration
- 13 SML# feature: dynamic types and typed manipulation of JSON
- 14 SML# feature: separate compilation
-
III Reference manual
- 15 Introduction
- 16 The SML# Structure
- 17 Lexical structure
- 18 Types
-
19 Expressions
- 19.1 Elaboration of infix expressions
- 19.2 Constantsscon
- 19.3 Long identifier expression longVid
- 19.4 Record expression {lab = exp, , lab = exp}
- 19.5 Tuple expression (exp, , exp) and unit expression ()
- 19.6 Field selector expression #lab
- 19.7 List expression [exp, , exp]
- 19.8 Sequential execution expression (exp; ; exp)
- 19.9 Local declaration expression let declList in exp;;exp end
- 19.10 Function application expression appexp atexp
- 19.11 Field update expression appexp # { exprow }
- 19.12 Type constraint expression exp : ty
- 19.13 Boolean expressions exp andalso exp and exp orelse exp
- 19.14 Exception handling expression exp handle match
- 19.15 Exception expression raise exp
- 19.16 Conditional expression if exp then exp else exp
- 19.17 While expression while exp do exp
- 19.18 Case expression case exp of match
- 19.19 Function expression fn match
- 19.20 Builtin types and builtin primitives
- 19.21 Static import expression: _import string : cfunty
- 19.22 Dynamic import expression: exp : _import cfunty
- 19.23 Size expression _sizeof(ty)
- 19.24 Dynamic type cast expression _dynamic exp as ty
- 19.25 Case branch expression with dynamic type cast _dynamiccase exp of match
- 20 Patterns and Pattern Matching
- 21 Scope rules for identifier
-
22 SQL Expressions and Commands
- 22.1 SQL Types
- 22.2 Extended ML Expressions for SQL Queries
- 22.3 Database Server Description: The _sqlserver Expression
-
22.4 SQL Value Expressions
- 22.4.1 Expressions evaluated by SML#
- 22.4.2 SQL constant expressions
- 22.4.3 SQL identifier expressions
- 22.4.4 SQL function applications and infix expressions
- 22.4.5 Type cast expressions
- 22.4.6 SQL logical expressions
- 22.4.7 SQL column reference expressions
- 22.4.8 SQL Subqueries
- 22.4.9 Embedded SQL value expressions
- 22.5 SELECT queries
- 22.6 SQL commands
- 22.7 SQL execution function expressions
- 22.8 SQL Library: The SQL Structure
- 22.9 SQL Library: The SQL.Op structure
- 22.10 SQL Library: The SQL.Numeric Structure
- 22.11 Difference from the standard SQL (Informative)
- 23 Declarations of the core language and their interfaces
- 24 Module language declarations and interface
- 25 Overview of SML# Libraries
-
26 Standard ML Basis Library
- 26.1 ARRAY
- 26.2 ARRAY_SLICE
- 26.3 BIN_IO
- 26.4 IMPERATIVE_IO
- 26.5 STREAM_IO
- 26.6 BOOL
- 26.7 BYTE
- 26.8 CHAR
- 26.9 COMMAND_LINE
- 26.10 DATE
- 26.11 GENERAL
- 26.12 IEEE_REAL
- 26.13 IO
- 26.14 INTEGER
- 26.15 INT_INF
- 26.16 LIST
- 26.17 LIST_PAIR
- 26.18 MONO_ARRAY
- 26.19 MONO_ARRAY_SLICE
- 26.20 MONO_VECTOR
- 26.21 MONO_VECTOR_SLICE
- 26.22 OPTION
- 26.23 OS
- 26.24 OS_FILE_SYS
- 26.25 OS_IO
- 26.26 OS_PATH
- 26.27 OS_PROCESS
- 26.28 REAL
- 26.29 MATH
- 26.30 STRING
- 26.31 STRING_CVT
- 26.32 SUBSTRING
- 26.33 TEXT
- 26.34 TEXT_IO
- 26.35 TEXT_STREAM_IO
- 26.36 PRIM_IO
- 26.37 TIME
- 26.38 TIMER
- 26.39 VECTOR
- 26.40 VECTOR_SLICE
- 26.41 WORD
- 26.42 The top-level environment
- 27 SML# System Library
- 28 The smlsharp command
- 29 SML# Run-time data management
- IV Programming Tools
- V SML# Internals and Data Structures
- VI Bibliography and other documents