Stuart Sierra discusses several design patterns implemented in functional languages, in particular Clojure: State/Event, Consequences, Accumulator, MapReduce, Reduce/Combine, Recursive Expansion, etc.
Stuart Sierra is a developer at Relevance, Inc., a member of Clojure/core, and the co-author of Practical Clojure (Apress, 2010) and a forthcoming ClojureScript book from O’Reilly. He has been involved with open-source technologies including Clojure, ClojureScript, Ruby, Rails, Hadoop, and Solr.
Strange Loop is a multi-disciplinary conference that aims to bring together the developers and thinkers building tomorrow's technology in fields such as emerging languages, alternative databases, concurrency, distributed systems, mobile development, and the web. Strange Loop was created in 2009 by software developer Alex Miller and is now run by a team of St. Louis-based friends and developers under Strange Loop LLC, a for-profit but not particularly profitable venture.
This talk is worth writting into a book!
Function Composition as Meta Pattern
In fact function composition is at the very heart of defining monadic computations.
In languages such as Haskell function composition almost becomes 2nd nature.
Video can't be played after several minutes in mainlang China
能给点 CDN 之类的方案不?
recursive consequences typo?
Around 11:40 - shouldn't this be more like:
(defn recursive-consequences [current-state event]
(reduce (fn [state event]
(update-state state event) event))
(consequences current-state event)))
[that still doesn't seem quite right, but has a fighting chance...]