Re: What books have helped you wrap your brain around FP and Clojure?
Just see http://en.wikibooks.org/wiki/Clojure_Programming/Further_Reading On Jun 6, 3:12 pm, Robert Campbell rrc...@gmail.com wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
Programming Erlang is also good. The syntax and message passing emphasis aren't relevant to Clojure, but Erlang also uses immutable data, and is definitely a functional language. On Sat, 6 Jun 2009 13:12:16 +0200 Robert Campbell rrc...@gmail.com wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
On Jun 8, 2009, at 7:24 AM, Nathan Hawkins wrote: The syntax and message passing emphasis aren't relevant to Clojure I don't have any experience with agents in Clojure, but I wonder if they be used to similar effect? Agents seem more like data in another thread to me than self-recursive functions in another thread, which is what Erlang's processes are like, but your remark piques my curiosity. Can one be implemented trivially via the other? — Daniel Lyons http://www.storytotell.org -- Tell It! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
I second most of the book suggestions already mentioned (those that I've read). If you like reading papers, I strongly suggest you take a look at Can Programming Be Liberated from the von Neumann Style?: http://www.stanford.edu/class/cs242/readings/backus.pdf This paper will help you with two things: 1. Motivation to investigate deeper FP; 2. Understanding many core concepts of FP. If you read this paper, I strongly suggest you schedule some time to read at least the first 12 pages of his lecture. The first 7 pages will shed out more light on what’s wrong with imperative languages; then, the next pages will explain how a language can be implemented on top of a very small number of sound and simple concepts that can be used and powerfully combined in all sorts of natural ways to describe computations. (Although it could be argued that some of this paper's ideas go even further than our current FP languages do, they won't hinder your understanding at all.) If you'd like to read about Backus' contribution to our field, I think these are the best links: http://en.wikipedia.org/wiki/John_Backus http://theory.stanford.edu/~aiken/other/backus.pdf http://www-03.ibm.com/ibm/history/exhibits/builders/builders_backus.html Another paper which helped me understand FP in relation with maths is Recursion Equations As A Programming Language. Last time I checked (Jan.), this paper was still not freely available on the web; but you can read most of its message through Google Books. It's a much easier read than Backus, but less complete; nonetheless, it's really, really highly recommended because it's complementary. Next, I've seen the following mentioned in quite a few places, and I think the general opinion is that it's also high-quality stuff. I'm yet to read it. Why Functional Programming Matters: http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html Now, one might argue these papers' goal is more to introduce/motivate FP over traditional imperative programming. I would oppose to this that in order to back FP, these papers need to explain FP in very powerful terms for people; thus, they are great reads for the problem at hand. On Jun 8, 11:10 am, Daniel Lyons fus...@storytotell.org wrote: On Jun 8, 2009, at 7:24 AM, Nathan Hawkins wrote: The syntax and message passing emphasis aren't relevant to Clojure I don't have any experience with agents in Clojure, but I wonder if they be used to similar effect? Agents seem more like data in another thread to me than self-recursive functions in another thread, which is what Erlang's processes are like, but your remark piques my curiosity. Can one be implemented trivially via the other? — Daniel Lyonshttp://www.storytotell.org-- Tell It! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
+1 for Higher Order Perl. The author, Mark Jason Dominus, has made the book available for free download at http://hop.perl.plover.com/book/. Cheers, Danny. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
On Jun 6, 7:12 am, Robert Campbell rrc...@gmail.com wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? Practical Common Lisp, on the web at http://gigamonkeys.com/book/ Clojure borrows the good bits of CL. SICP is available online too, http://mitpress.mit.edu/sicp/ -Stuart Sierra --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
What books have helped you wrap your brain around FP and Clojure?
Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
Talk about bad timing - reading the Silly question from Programming Clojure it looks like a book thread already got started there. Here were some additional mentions: Laurent PETIT: OOSC: Object Oriented Software Construction, but this is OOP so I'm disinclined to include it for this specific list Paul Stadig: Concepts of Programming Languages by Sebesta, suggested as more general than SICP On Sat, Jun 6, 2009 at 1:12 PM, Robert Campbellrrc...@gmail.com wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
I recommend The Little Schemer and if you want to go further, The Seasoned Schemer. On Jun 6, 7:12 am, Robert Campbell rrc...@gmail.com wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
As messy of a language it is, learning Ruby was the final step needed to show me the philosophy and merits of FP. -Patrick --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
Higher Order Perl. While I don't want to use Perl anymore, I do know it very well, and it provided a good introduction to FP in a more familiar language. YMMV. Robert Campbell wrote: Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) transition from OOP thinking to FP thinking? My bookshelf is piled high with OOP books like Design Patterns, Domain Driven Design, Analysis Patterns, etc. I've recently ordered: - Concepts, Techniques, and Models of Computer Programming (mentioned on this/compojure's list) - Structure and Interpretation of Computer Programs (highly recommended on Stackoverflow, lectures posted online) Any others? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
I read Norvig's PAIP. The concept of first defining a dsl and then writing an interpreter/compiler for it is amazing. Even something as simple as his sentence grammar shows the idea. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
I recommend Purely Functional Data Structures by Chris Okasaki. If you can get your hands on OCaml for Scientists it's pretty good too. And of course The Little Lisper/Schemer. I haven't made it through my copy of SICP or PAIP. -- Daniel On Jun 6, 2009, at 10:26 AM, kyle smith the1physic...@gmail.com wrote: I read Norvig's PAIP. The concept of first defining a dsl and then writing an interpreter/compiler for it is amazing. Even something as simple as his sentence grammar shows the idea. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
Going beyond the language-specific Programming Clojure book, what other books have best helped you make the (sometimes mind-bending) I have not yet read anything more mind-bending than this: http://www.gp-field-guide.org.uk/ (A field guide to genetic programming) It is free download - the book is under Creative Commons license... A clojure example of the above is at: http://npcontemplation.blogspot.com/2009/01/clojure-genetic-mona-lisa-problem-in.html (but the code did not work in the latest clojure for me) Kind regards, Vlad PS: Apart from being a fascinating subject - the book made the code is data idea obvious... --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---
Re: What books have helped you wrap your brain around FP and Clojure?
It may help to review the code and structure of open source Clojure projects, part of the mind-bend feeling could be coming from struggling to know where to begin when writing code and less from unfamiliarity with the theory of FP. I'd also recommend playing with Haskell and reviewing Real World Haskell (http://book.realworldhaskell.org/). Even though Clojure has a focus on FP, other Lisps don't exhibit this; there are bits of FP that can be found in any programming language but with Haskell you'll be immersed in it. On Jun 6, 4:10 pm, Daniel Lyons fus...@storytotell.org wrote: I recommend Purely Functional Data Structures by Chris Okasaki. If you can get your hands on OCaml for Scientists it's pretty good too. And of course The Little Lisper/Schemer. I haven't made it through my copy of SICP or PAIP. -- Daniel On Jun 6, 2009, at 10:26 AM, kyle smith the1physic...@gmail.com wrote: I read Norvig's PAIP. The concept of first defining a dsl and then writing an interpreter/compiler for it is amazing. Even something as simple as his sentence grammar shows the idea. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~--~~~~--~~--~--~---