Using DPmem, we can create an infinite mixture model with arbitrary observation distributions. In the following model, the observation function is Gaussian:
(define class-distribution (DPmem 1.0 gensym))
(define object->class
(mem (lambda (object) (class-distribution))))
(define class->gaussian-parameters
(mem (lambda (c) (list (gaussian 65 10) (uniform 0 8)))))
(define (observe object)
(apply gaussian (class->gaussian-parameters (object->class object))))
(map observe '(tom dick harry bill fred))
See also:
References: