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

Evaluate an expression by getting its log-likelihood.

Some program induction methods can take advantage of observations. This may often practically be the unit type ().

An expression that is considered valid for the oracle is one of this Type.

Trait Implementations

Auto Trait Implementations

impl<'a, R, X, O> Send for Task<'a, R, X, O> where
    O: Send

impl<'a, R, X, O> Sync for Task<'a, R, X, O>