On Wednesday, December 14, 2016 at 12:19:51 PM UTC-5, Prabhakar Ragde wrote:
> 
> I am developing such a course for a spring term (May-August) offering at 
> the University of Waterloo (though it will probably use OCaml). There 
> does not appear to be an ideal textbook; I plan to synthesize materials. 
> There are FP books which cover some of the material in various 
> languages: Simon Thompson's Haskell book, Algorithms by Rabhi and 
> Lapalme (also Haskell), Larry Paulson's ML book. (In my opinion, Okasaki 
> and Bird are too advanced for a first DS course.) Mark Allen Weiss's DS 
> book in C is the best conventional book I have found; it is not afraid 
> of recursion.
> 
> One issue is that an early FP approach may well cover some topics from a 
> typical DS course, since it is possible to do so earlier. Examples from 
> my own experience include various sorting algorithms, O-notation and 
> algorithm analysis, various heap implementations of priority queues, 
> treaps, AVL trees, RB trees, AA trees, tries, and KMP text search. I 
> have covered these in various incarnations of first-year Racket courses 
> (not all at once).
> 
> I'd be happy to consult if you are considering developing a course. --PR

Yes, I have the Paulson book "ML for the Working Programmer," which mixes in 
some data structure, but nothing so thorough as Weiss. Then there is Okasaki's 
"Purely Functional Data Structures," which lives solely in the purely 
functional land of ML and Haskell and can't really be brought out very easily 
or so it seems to me. Anyway, it was a dissertation, which is inappropriate for 
undergrads. The other books mentioned aren't for weak of heart grad students, 
let alone undergrads. I find it ironic that I can search Racket docs on 
virtually any data structure and find a library ready and waiting. Maybe 
whoever did all those libraries should be volunteered into writing a textbook? 
(Laughter.) In general, I'm sure that between Weiss and Okasaki's "Purely 
Functional Data Structures" would be a nuanced Racket/TR way of doing things 
(macros, combinators, etc.). I'm personally not that good at Racket to know the 
"Enlightened Way," but it would be a good thing to have, no doubt.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to