Key features of Church

From Church Wiki
Revision as of 00:03, 21 September 2009 by Daniel Roy (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Expressing probabilistic models

  • Procedures are exchangeable. (This is the probabilistic language analog of purity.)
  • Conditioning (query) is syntactically scoped.
  • Memoization. (Permits random-world style programming.)
  • Interface for adding additional primitive random and non-random functions.
  • Libraries for common modeling constructs: non-parametric models (DPmem), planning....

It's a Lisp

  • Church is a true functional language.
  • Church is a Lisp-1.
  • Code as data (i.e. Church is homoiconic).
  • Lexically scoped.
  • Call-by-value. (The implementation is strict, except for if and mem. Due to exchangeability non-strict, call-by-value evaluation would result in the same distribution.)
Personal tools