Clojure opens up for combining different computational models, such as functional programming, object oriented programming and logic programming. Compared to these, propagators are a relatively new declarative computational model which makes it simple to combine different sources of information, to hold conflicting views of the world and to trace what information was needed to derive values. This talk explains the underlying principles behind propagators using the newly released, extensible “propaganda” Clojure library with example problems solved using FP, LP and propagators. The talk will take the audience through the basic concepts of setting up a cell network, add propagators, combine information to refine values, extend propaganda with new datatypes, hold multiple contradictory worldviews and perform simple backtracking.
-
Sat, Jan 1, 09:00 - 09:40