]> Repositorios git - scryer-prolog.git/commitdiff
add 'e' as evaluable functor for Euler's constant (#832)
authorMark Thom <[email protected]>
Sun, 21 Feb 2021 01:31:47 +0000 (18:31 -0700)
committerMark Thom <[email protected]>
Sun, 21 Feb 2021 01:32:04 +0000 (18:32 -0700)
src/arithmetic.rs
src/machine/arithmetic_ops.rs

index 7941ed3bbd3b80fb01f9faba153ac0d332bd69fc..bcaf239f629a3824d9bb58231728b6ec8f06b1bf 100644 (file)
@@ -278,6 +278,12 @@ impl<'a> ArithmeticEvaluator<'a> {
             &Constant::Rational(ref n) => self
                 .interm
                 .push(ArithmeticTerm::Number(Number::Rational(n.clone()))),
+            &Constant::Atom(ref name, _) if name.as_str() == "e" => {
+                self.interm
+                    .push(ArithmeticTerm::Number(Number::Float(OrderedFloat(
+                        f64::consts::E,
+                    ))))
+            }
             &Constant::Atom(ref name, _) if name.as_str() == "pi" => {
                 self.interm
                     .push(ArithmeticTerm::Number(Number::Float(OrderedFloat(
index 63ec2d6d861ee777834bc1dcbf532c45277114d1..9ce4eac05cebc0e0a1b080f6b44aa4f12d528592 100644 (file)
@@ -224,6 +224,9 @@ impl MachineState {
                 &HeapCellValue::Atom(ref name, _) if name.as_str() == "pi" => {
                     interms.push(Number::Float(OrderedFloat(f64::consts::PI)))
                 }
+                &HeapCellValue::Atom(ref name, _) if name.as_str() == "e" => {
+                    interms.push(Number::Float(OrderedFloat(f64::consts::E)))
+                }
                 &HeapCellValue::NamedStr(arity, ref name, _) => {
                     let evaluable_stub = MachineError::functor_stub(name.clone(), arity);