pub struct BuiltInPredicate {
pub functor: String,
pub terms: Option<Vec<Unifiable>>,
}
Expand description
Defines built-in predicates, such as print(), append(), etc.
In Suiron source code, built-in predicates have the form:
functor(term1, term2, ...)
Fields§
§functor: String
§terms: Option<Vec<Unifiable>>
Implementations§
Source§impl BuiltInPredicate
impl BuiltInPredicate
Sourcepub fn new(functor: String, terms: Option<Vec<Unifiable>>) -> Self
pub fn new(functor: String, terms: Option<Vec<Unifiable>>) -> Self
Creates a new BuiltInPredicate struct.
§Usage
use suiron::*;
// To make: append(a, b, c)
let app = "append".to_string();
let terms = vec![atom!("a"), atom!("b"), atom!("c")];
let pred = BuiltInPredicate::new(app, Some(terms));
// To make a 'fail' predicate:
let pred = BuiltInPredicate::new("fail".to_string(), None);
Sourcepub fn recreate_variables(self, vars: &mut VarMap) -> BuiltInPredicate
pub fn recreate_variables(self, vars: &mut VarMap) -> BuiltInPredicate
Recreates logic variables to give them unique IDs.
Logic variables in the knowledge base have an ID of 0, but when a rule is fetched from the knowledge base, the logic variables must be given unique IDs.
§Arguments
- self
- map of previously recreated variable IDs
§Return
- new BuiltInPredicate
§Usage
use suiron::*;
// Make a built-in predicate: print($X, $Y)
let print_predicate = parse_subgoal("print($X, $Y)").unwrap();
let mut var_map = VarMap::new();
let new_print = print_predicate.recreate_variables(&mut var_map);
println!("{}", new_print); // Prints: print($X_1, $Y_2)
Trait Implementations§
Source§impl Clone for BuiltInPredicate
impl Clone for BuiltInPredicate
Source§fn clone(&self) -> BuiltInPredicate
fn clone(&self) -> BuiltInPredicate
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for BuiltInPredicate
impl Debug for BuiltInPredicate
Source§impl Display for BuiltInPredicate
impl Display for BuiltInPredicate
Source§impl PartialEq for BuiltInPredicate
impl PartialEq for BuiltInPredicate
impl StructuralPartialEq for BuiltInPredicate
Auto Trait Implementations§
impl Freeze for BuiltInPredicate
impl RefUnwindSafe for BuiltInPredicate
impl Send for BuiltInPredicate
impl Sync for BuiltInPredicate
impl Unpin for BuiltInPredicate
impl UnwindSafe for BuiltInPredicate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more