forked from Orchid/orchid
38 lines
1.0 KiB
Rust
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())
|
|
}); |