diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-11-15 16:58:58 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-11-15 16:58:58 -0800 |
commit | 290d470eb4c96f12b78667d286d2a11c49d2a619 (patch) | |
tree | 8b01b66251b6743bb4f516517d800f96f64dfc31 | |
parent | 2968f213b667baa8178f90bde8c0d8f757741757 (diff) | |
download | txr-290d470eb4c96f12b78667d286d2a11c49d2a619.tar.gz txr-290d470eb4c96f12b78667d286d2a11c49d2a619.tar.bz2 txr-290d470eb4c96f12b78667d286d2a11c49d2a619.zip |
* lib.c (max2, min2): Use the less comparison function
for generic semantics.
* lib.h (max2, min2): Parameter names changed to avoid suggesting
that the operands are numbers.
* txr.1: Documentation for min and max updated.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | lib.c | 8 | ||||
-rw-r--r-- | lib.h | 4 | ||||
-rw-r--r-- | txr.1 | 11 |
4 files changed, 23 insertions, 10 deletions
@@ -1,3 +1,13 @@ +2014-11-15 Kaz Kylheku <kaz@kylheku.com> + + * lib.c (max2, min2): Use the less comparison function + for generic semantics. + + * lib.h (max2, min2): Parameter names changed to avoid suggesting + that the operands are numbers. + + * txr.1: Documentation for min and max updated. + 2014-11-10 Kaz Kylheku <kaz@kylheku.com> * eval.c (opip_s, oand_s, chain_s, chand_s): New global variables. @@ -2139,14 +2139,14 @@ val numneqv(val list) return t; } -val max2(val anum, val bnum) +val max2(val a, val b) { - return if3(ge(anum, bnum), anum, bnum); + return if3(less(a, b), b, a); } -val min2(val anum, val bnum) +val min2(val a, val b) { - return if3(le(anum, bnum), anum, bnum); + return if3(less(a, b), a, b); } val maxv(val first, val rest) @@ -553,8 +553,8 @@ val gev(val first, val rest); val lev(val first, val rest); val numeqv(val first, val rest); val numneqv(val list); -val max2(val anum, val bnum); -val min2(val anum, val bnum); +val max2(val a, val b); +val min2(val a, val b); val maxv(val first, val rest); val minv(val first, val rest); val expt(val base, val exp); @@ -18492,20 +18492,23 @@ and functions determine and return the highest or lowest value from among their arguments. -The arguments must be numbers or characters. - If only .meta first-arg is given, that value is returned. +These functions are type generic, since they compare arguments +using the same semantics as the +.code less +function. + If two or more arguments are given, then .code (max a b) is equivalent to -.codn (if (>= a b) a b) , +.codn (if (less a b) b a) , and .code (min a b) is equivalent to -.codn (if (<= a b) a b) . +.codn (if (less a b) a b) . If the operands do not have the same type, then one of them is converted to the type of the other; however, the original unconverted values are returned. For instance |