|
|||||||||||||||||||||||||||||||||||
|
2 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
1 of 1 people found the following review helpful:
5.0 out of 5 stars
Great Introduction to SML,
By A Customer
This review is from: Elementary Standard ML (Paperback)
I began studying computer science at The University of Copenhagen this summer (1998). This book was the first one we had to read, since Standard ML was the first language we had to learn, and I can indeed recommend this book to anyone new to Standard ML. It has many examples giving the reader a very good understanding to the subjects, and is written in a rather simple language (I am from Denmark, so anyone with English as their primary language will not encounter any problems reading this book :-). It starts from the very basics of programming in general, and continues through many subjects such as types, lists, functions, Input/Output, text and loops ending up giving the reader a very useful foundation of Standard ML programming. So if you are entirely new to Standard ML and want to learn it, this book will be a great help to you. Sincerely, Kasper Christensen
3.0 out of 5 stars
Things left unsaid,
By
Amazon Verified Purchase(What's this?)
This review is from: Elementary Standard ML (Kindle Edition)
I am reading the Kindle edition of the book.
There seems to be a whole lot of assumptions made in the text, that you understand recursive definitions and induction. How else are you to believe the recursive function definitions will work other than a couple of example usages of the function shown. What seems worse to me is the lack of explanation of the type system, you are left with type definitions list int -> int -> int without much explanation of what it means and how it came to be. How are you to understand the definitions of things like the "revl" function in chapter 6? val rev = revl 1 To understand this, you have to understand that "revl 1" is going to return a function -- which itself is going to require an argument "n". If you look at revl itself, you don't see that directly. fun revl rlsf [ ] = rlsf | revl rlsf (h::t) = revl (h::rlsf) t I guess it's nice that the code works, but it would be nicer if the reader had some concept of what was going on. From reading the text -- that doesn't look like a function that returns a function value. I don't see how you make that leap from the information provided in the text. It seems a very Haskell-like concept that is going on, that needs explanation. |
|
Most Helpful First | Newest First
|
|
Elementary Standard ML by G Michaelson (Paperback - November 30, 1995)
Used & New from: $38.59
| ||