Struct programinduction::Task
[−]
[src]
pub struct Task<'a, R: Send + Sync + Sized, X: Clone + Send + Sync, O: Sync> { pub oracle: Box<Fn(&R, &X) -> f64 + Send + Sync + 'a>, pub observation: O, pub tp: Type, }
A task which is solved by an expression under some representation.
A task can be made from a simple evaluator and examples with
lambda::task_by_simple_evaluation
or pcfg::task_by_simple_evaluation
.
Tasks which require more complex (and expensive) evaluation can be made with a
lambda::LispEvaluator
Fields
oracle: Box<Fn(&R, &X) -> f64 + Send + Sync + 'a>
Evaluate an expression by getting its log-likelihood.
observation: O
Some program induction methods can take advantage of observations. This may often
practically be the unit type ()
.
tp: Type
An expression that is considered valid for the oracle
is one of this Type.