From: Mark Thom Date: Wed, 15 Nov 2023 19:38:24 +0000 (+0100) Subject: fix sign/1 (#2157) X-Git-Tag: v0.9.4~116 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=bcb68fcc3d7226eb12010ba06c1f2a8800966e6a;p=scryer-prolog.git fix sign/1 (#2157) --- diff --git a/src/forms.rs b/src/forms.rs index a42dda7f..3a2b743f 100644 --- a/src/forms.rs +++ b/src/forms.rs @@ -744,7 +744,11 @@ impl Number { Number::Float(f) => Number::Float(OrderedFloat(f.signum())), _ => { if self.is_positive() { - Number::Fixnum(Fixnum::build_with(1)) + if self.is_zero() { + Number::Fixnum(Fixnum::build_with(0)) + } else { + Number::Fixnum(Fixnum::build_with(1)) + } } else if self.is_negative() { Number::Fixnum(Fixnum::build_with(-1)) } else {