|Racket Programming the Fun Way
Author: James W. Stelly
Lisp is generally regarded as the language of the gods - but the gods are usually considered to be slightly more intelligent than the average mortal and so it is with some trepidation you should approach any descendent of Lisp. Racket is recognizably Lisp, but it also has object-oriented features that make "normal" programming easier. This said it is also worth knowing that the main use of Racket is to implement experimental languages and this is not the emphasis of this book. Instead this book is a collection of general projects that you might consider fun - hence "Fun" in the book's title.
The book uses the DrRacket IDE which is the only reasonable choice. Chapter 1 dives straight in with very Lisp-like lists and S expressions. If you've encountered Lisp in a former life this will look all very familiar. The presentation isn't formal and the syntax and ideas of the language are introduced by examples and informal discussion. There are no jokes, but the style is friendly and informative.
Chapter 2 introduces basic numeric types, Chapter 3 deals with creating functions and of course being a Lisp-like language this means lambda functions.
Reaching Chapter 4, we have left the basics of the language behind and start to look at examples. This is where you will learn most about Racket rather than details of the language. So if you don't like learning by example this isn't going to be to your liking. Chapter 4 is about graphics and Chapter 5 introduces Racket's GUI. This is all fairly object-oriented.
Chapter 6 is about data and file handling and the examples are about stats and visualization. Chapter 7 outlines the standard search algorithms, which is something any Lisp-oriented language is very good at. Chapter 8 introduces Racket's logic programming library, which gives you a chance to find out about Prolog-style programming. Chapter 9 looks at machines like Turing machines to give you some idea of what this aspect of computer science is all about and justifies the book's subtitle of "from Strings to Turing Machines".
The final chapter implements an algebraic calculator which does make use of Racket's language processing abilities, but this probably isn't enough for language theory students.
This is a beginner's book for the beginner who wants to learn something about Lisp-like languages. It doesn't cover all of the details of Racket, no mention is made of macros for example, and it doesn't explain why and how Racket is different from other Lisp-like languages, notably Clojure. As far as it goes it is a good introduction, as long as you like introductions that major on examples.
|Last Updated ( Wednesday, 19 January 2022 )