In code quarterly interview with Rich Hickey, Michael Fogus hints that Clojure borrows a lot from Haskell:
As someone who only knows Haskell enough to read the papers, Clojure appears to be influenced by it substantially. From the names and operation of core functions—take, drop, iterate, repeat, etc.—to its protocols facility, there is a lot in Clojure that a Haskell programmer would recognize. Can you elaborate on Haskell’s influences on Clojure both positive and negative?
I think Haskell is a fantastic, awe-inspiring piece of work. I haven’t used it in anger, but it certainly was a positive influence. Haskell obviously goes much further than Clojure in pursuing the ideals of functional programing. In particular they differ in the approach to using types to enforce things.
My question is - Does Clojure borrow concurrency ideas from Haskell? Fogus hints at some syntax, and there is obviously functional laziness. What about the STM and concurrency operators?
- I'm asking this question in a positive tone. I think it is great that Rich could see some of the treasures in Haskell and use them.