Module programinduction::domains::strings[][src]

The string editing domain, for tackling Flashfill-style problems.

Examples

use programinduction::{ECParams, EC};
use programinduction::domains::strings;

let dsl = strings::dsl();
let tasks = strings::make_tasks(250, 4);
let ec_params = ECParams {
    frontier_limit: 10,
    search_limit_timeout: None,
    search_limit_description_length: Some(15.0),
};

let frontiers = dsl.explore(&ec_params, &tasks);
let hits = frontiers.iter().filter_map(|f| f.best_solution()).count();
assert!(50 < hits && hits < 80, "hits = {}", hits);

Structs

Evaluator

An Evaluator for the strings domain.

Enums

Space

All values in the strings domain can be represented in this Space.

Functions

dsl

The string editing lambda::Language defines the following operations:

make_tasks

Randomly generate string editing Tasks.