Files
orchid/src/external/numbers/mod.rs

38 lines
1.0 KiB
Rust

mod numeric;
use numeric::Numeric;
use std::fmt::Debug;
use std::rc::Rc;
use std::hash::Hash;
use crate::{atomic_impl, atomic_redirect, externfn_impl, xfn_initial, xfn_middle, xfn_last, xfn};
use crate::foreign::{ExternError, ExternFn, Atom, Atomic};
use crate::representations::Primitive;
use crate::representations::interpreted::{Clause, InternalError};
// xfn_initial!(
// /// Multiply function
// Multiply2, Multiply1
// );
// xfn_middle!(
// /// Partially applied multiply function
// Multiply2, Multiply1, Multiply0, (
// a: Numeric: |c: &Clause| c.clone().try_into()
// )
// );
// xfn_last!(
// /// Fully applied Multiply function.
// Multiply1, Multiply0, (
// b: Numeric: |c: &Clause| c.clone().try_into(),
// a: Numeric: |c: &Clause| c.clone().try_into()
// ), Ok((*a * b).into())
// );
xfn!((
/// Multiply function
a: Numeric: |c: &Clause| c.clone().try_into(),
/// Partially applied multiply function
b: Numeric: |c: &Clause| c.clone().try_into()
), {
Ok((*a * b).into())
});