ML for the Working ProgrammerCambridge University Press, 1996 M06 28 The new edition of this successful and established textbook retains its two original intentions of explaining how to program in the ML language, and teaching the fundamentals of functional programming. The major change is the early and prominent coverage of modules, which are extensively used throughout. In addition, the first chapter has been totally rewritten to make the book more accessible to those without experience of programming languages. The main features of new Standard Library for the revised version of ML are described and many new examples are given, while references have also been updated. Dr Paulson has extensive practical experience of ML and has stressed its use as a tool for software engineering; the book contains many useful pieces of code, which are freely available (via the Internet) from the author. He shows how to use lists, trees, higher-order functions and infinite data structures. Many illustrative and practical examples are included.. Efficient functional implementations of arrays, queues, priority queues, etc. are described. Larger examples include a general top-down parser, a lambda-calculus reducer and a theorem prover. The combination of careful explanation and practical advice will ensure that this textbook continues to be the preferred text for many courses on ML. |
Dentro del libro
Resultados 1-5 de 97
Página
... sideeffects: they can change the state. We shall focus on pure expressions, which merely compute a value. Expressions have a recursive structure. A typical expression like f(E 1 + E 2 ) − g(E 3 ). Expressions versus commands.
... sideeffects: they can change the state. We shall focus on pure expressions, which merely compute a value. Expressions have a recursive structure. A typical expression like f(E 1 + E 2 ) − g(E 3 ). Expressions versus commands.
Página
... compute the same value if the 'function' f changes the value of u. The meaning ofan expressioninPascal involves statesas well as values. For all practical purposes, referential transparency has been lost. In a purely functional language ...
... compute the same value if the 'function' f changes the value of u. The meaning ofan expressioninPascal involves statesas well as values. For all practical purposes, referential transparency has been lost. In a purely functional language ...
Página
... computation, representing logical terms and formulæ in theorem provers. Lists and trees are represented using references, so the runtime system must include a garbage collector. Functions. Expressions consist mainly of function ...
... computation, representing logical terms and formulæ in theorem provers. Lists and trees are represented using references, so the runtime system must include a garbage collector. Functions. Expressions consist mainly of function ...
Página
... compute the lengthof a list must specify the — completely irrelevant! — type of the list's elements. Our ML length ... computed by x 1 + (x 2 + ... + (x n + 0) ...). If e = 1 and f = × then we.
... compute the lengthof a list must specify the — completely irrelevant! — type of the list's elements. Our ML length ... computed by x 1 + (x 2 + ... + (x n + 0) ...). If e = 1 and f = × then we.
Página
... computed by x 1 × (x 2 × ... × (x n × 1) ...). Other computations are expressed by suitable choices for f and e. Infinite data structures.Infinite lists like[1,2,3, ...] canbe given a computational meaning. They can be of great help ...
... computed by x 1 × (x 2 × ... × (x n × 1) ...). Other computations are expressed by suitable choices for f and e. Infinite data structures.Infinite lists like[1,2,3, ...] canbe given a computational meaning. They can be of great help ...
Contenido
Summary of main points 4 Trees and Concrete Data | |
Functions and InfiniteData Chapter outline Functions asvalues 5 1 Anonymous functionswith | |
Summary of main points 3 Lists | |
Summary of main points 7 Abstract Types andFunctors Chapter outline | |
Imperative Programming in ML | |
Summary of main points 10 A Tactical Theorem Prover | |
Términos y frases comunes
abstract type algorithm applied argument arithmetic binary search trees binary tree callbyvalue canbe characters components compute constructors contains curried function data structures datatype datatype declaration defined depthfirst search dictionary efficient elements empty error example exception Exercise expression flexible arrays foldl foldr formula functional programming functor handler heap higherorder functions imperative programming implement infix infix operator input insert integers iterative label lazy evaluation logic lookup match mathematical mathematical induction matrix merge sort ML’s modules multisets natural numbers node normal form notation numbers ofthe output pairs parameter parser parsing pattern patternmatching polymorphic polynomials predicate priority queues proof proposition prove quantifier real numbers recursive call recursive functions references replaces representation represented result returns rule Section sequence sequent calculus signature solutions sort specifies standard library Standard ML string structural induction subgoal subtrees syntax tactics takes term terminate theorem update vector wellfounded