did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780201398205

Introduction to Programming Using Sml

by ;
  • ISBN13:

    9780201398205

  • ISBN10:

    0201398206

  • Format: Paperback
  • Copyright: 1999-06-01
  • Publisher: Addison Wesley
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.00

Summary

Introduction to Programming using SML provides a thorough introduction to the principles of programming and program design using the Standard ML programming language. The emphasis throughout is to put the theory of programming into practice. The examples and exercises teach the student how to apply basic theoretical concepts to produce succinct and elegant programs and program designs.Coverage includes an introduction to fundamental data structures and their applications. The notions of binding, environment, store, closure and evaluation are introduced in order to explain the meaning of programs in an informal but precise way. Thus, the authors provide the reader with a set of durable programming concepts which will exist well into the next generation of programming languages.

Author Biography

Hans Rischel is Associate Professor in the Department of Information Technology at the Technical University of Denmark.

Table of Contents

Preface xiii
Getting started
1(14)
Values, types, identifiers and declarations
2(1)
Simple function declarations
3(1)
Comments
4(1)
Recursion
5(5)
The power function
10(1)
About types and type checking
11(1)
Bindings and environments
12(1)
Summary
13(2)
Exercises
13(2)
Basic values and operators
15(16)
Integers and reals
15(2)
Expressions, precedence, association
17(1)
Euclid's algorithm
18(2)
Evaluations with environments
20(2)
Characters and strings
22(3)
Truth values
25(1)
The if-then-else expression
26(1)
Overloaded operators
27(1)
Type inference
27(1)
Summary
28(3)
Exercises
28(3)
Tuples and records
31(18)
Tuples
31(3)
Tuple patterns
34(1)
Infix functions on pairs
35(4)
Records
39(1)
Record patterns
40(1)
Type declarations
41(3)
Locally declared identifiers
44(3)
Summary
47(2)
Exercises
47(2)
Problem solving I
49(11)
Problem statement: rational numbers
50(1)
Solution 1
50(5)
Solution 2
55(1)
Comparing the solutions
56(2)
A solution using records
58(1)
Summary
58(2)
Exercises
59(1)
Lists
60(23)
Building lists
61(2)
The `cons' operator
63(3)
List patterns
66(3)
Append and reverse; polymorphic types
69(3)
Polymorphic values
72(1)
A library of list functions
73(3)
Membership; equality types
76(2)
Type inference
78(1)
Summary
79(4)
Exercises
79(4)
Problem solving II
83(7)
Problem analysis: cash register
83(2)
Programming
85(2)
Test
87(1)
Summary
87(3)
Exercises
88(2)
Tagged values and partial functions
90(14)
Datatype declarations
91(1)
The case-expression
92(2)
Enumeration types
94(1)
The order type
95(1)
Partial functions: the option datatype
95(3)
Exception handling
98(2)
The Eight Queens problem
100(2)
Summary
102(2)
Exercises
102(2)
Finite trees
104(31)
Chinese boxes
104(8)
Symbolic differentiation
112(5)
Trees of ancestors; traversal of a tree
117(3)
Mutual recursion
120(3)
Parameterized datatypes
123(1)
Electrical circuits
124(1)
Abstract types
125(6)
Summary
131(4)
Exercises
131(4)
Higher-order functions
135(26)
Expressions denoting functions
136(2)
Value declarations of recursive functions
138(1)
The map functions
139(2)
Declaring higher order functions
141(1)
Higher-order list functions
142(7)
Functional composition
149(1)
Tree recursion
150(1)
Type inference for higher-order functions
151(1)
Closures
152(4)
Static binding
156(1)
Lazy evaluation
157(1)
Summary
158(3)
Exercises
158(3)
Finite sets
161(13)
A representation of sets
161(1)
Operations on sets
162(3)
An abstype for sets
165(4)
Other representations of sets
169(3)
Summary
172(2)
Exercises
172(2)
Modules
174(20)
Structures
175(1)
Specifications and signatures
176(1)
Signatures and structures
177(4)
Further facilities
181(2)
Fixity of identifiers
183(1)
Functors
184(8)
Summary
192(2)
Exercises
192(2)
Tables
194(11)
The table concept
194(1)
A representation of tables
195(1)
Operations on tables
195(8)
Summary
203(2)
Exercises
204(1)
Problem solving III
205(12)
Problem analysis
206(2)
A sample run
208(1)
Programming
209(5)
Test
214(2)
Summary
216(1)
Exercises
216(1)
Input/output in SML
217(13)
Input streams
217(2)
Output streams
219(1)
Simple input and output
220(3)
Use of conversions
223(2)
Sequential composition
225(1)
Input/output of composite data
226(2)
Input with prompt and validation
228(1)
Summary
229(1)
Exercises
229(1)
Interactive programs
230(11)
A quiz program
230(1)
Actions
231(1)
Action schemas
231(1)
Functions for action schemas
232(1)
Dialogue automaton
233(2)
Dialogue program
235(1)
Action refinement
236(2)
Summary
238(3)
Exercises
238(3)
Problem solving IV
241(12)
Problem analysis
241(6)
Programming
247(3)
Test
250(1)
Summary
250(3)
Exercises
251(2)
Iteration
253(10)
Resource measures
253(1)
Two problems
254(1)
Solutions: accumulating parameters
255(2)
Iteration
257(5)
Summary
262(1)
Exercises
262(1)
Imperative programming
263(88)
The store
264(1)
Operations on the SML store
264(4)
References and polymorphism
268(1)
Arrays
269(8)
The while loop
277(3)
Imperative data structures
280(2)
Summary
282(2)
Exercises
282(2)
Appendices
A SML systems
284(1)
B Overview of Standard ML
285(21)
B.1 Lexical conventions
286(2)
B.2 Syntax
288(4)
B.3 Value, environment and store
292(3)
B.4 Types
295(1)
B.5 Semantics
296(10)
C Overview of the SML module system
306(7)
C.1 Lexical conventions
306(1)
C.2 Syntax
307(1)
C.3 Interfaces and environments
308(1)
C.4 Semantics
308(5)
D Selected parts of the SML basis library
313(25)
D.1 General
314(3)
D.2 Numbers
317(3)
D.3 Characters and strings
320(4)
D.4 Lists
324(2)
D.5 Vectors
326(1)
D.6 Arrays
327(2)
D.7 Timers and time
329(1)
D.8 Date
330(1)
D.9 Conversions
330(5)
D.10 Text input
335(1)
D.11 Text output
336(2)
E Modules of sets and tables
338(8)
E.1 Sets
339(1)
E.2 Tables
339(2)
E.3 Signatures
341(1)
E.4 Structures
342(4)
F The ASCII alphabet
346(3)
G Further reading
349(2)
Index 351

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program