index 2b47b2998d7b2658eb71769557e51855158e9103..2a90f93326f7a71ca4d25544221e04b9814b7df1 100644 (file)
@@ -1,6 +1,6 @@
/* -*-comment-start: "//";comment-end:""-*-
* Mes --- Maxwell Equations of Software
*
* This file is part of Mes.
*
@@ -33,7 +33,11 @@ assert_number (char const* name, SCM x)
SCM
greater_p (SCM x) ///((name . ">") (arity . n))
{
-  int n = INT_MAX;
+  if (x == cell_nil)
+    return cell_t;
+  assert_number ("greater_p", CAR (x));
+  int n = VALUE (CAR (x));
+  x = CDR (x);
while (x != cell_nil)
{
assert_number ("greater_p", CAR (x));
@@ -48,7 +52,11 @@ greater_p (SCM x) ///((name . ">") (arity . n))
SCM
less_p (SCM x) ///((name . "<") (arity . n))
{
-  int n = INT_MIN;
+  if (x == cell_nil)
+    return cell_t;
+  assert_number ("less_p", CAR (x));
+  int n = VALUE (CAR (x));
+  x = CDR (x);
while (x != cell_nil)
{
assert_number ("less_p", CAR (x));
@@ -81,8 +89,7 @@ SCM
minus (SCM x) ///((name . "-") (arity . n))
{
assert_number ("minus", CAR (x));
-  SCM a = CAR (x);
-  int n = VALUE (a);
+  int n = VALUE (CAR (x));
x = cdr (x);
if (x == cell_nil)
n = -n;