summaryrefslogtreecommitdiffstats
path: root/arith.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-11-20 19:59:50 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-11-20 19:59:50 -0800
commitd4b9a1e45899f86dbb9d5bef1f53fffa9dc05d44 (patch)
tree72d8ed7b5ee105ce47332e46c11a4f1a799e8b55 /arith.c
parent87626d48be8c54b4aa53cb4829ff1c3fc34eb02e (diff)
downloadtxr-d4b9a1e45899f86dbb9d5bef1f53fffa9dc05d44.tar.gz
txr-d4b9a1e45899f86dbb9d5bef1f53fffa9dc05d44.tar.bz2
txr-d4b9a1e45899f86dbb9d5bef1f53fffa9dc05d44.zip
* arith.c (succ, ssucc, sssucc, pred, ppred, pppred): New functions.
* eval.c (eval_init): Register new functions as intrinsics. * lib.h (succ, ssucc, sssucc, pred, ppred, pppred): Declared. * txr.1: Documented.
Diffstat (limited to 'arith.c')
-rw-r--r--arith.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/arith.c b/arith.c
index 5d4cdada..23cf66a8 100644
--- a/arith.c
+++ b/arith.c
@@ -1011,6 +1011,36 @@ val oddp(val num)
}
}
+val succ(val num)
+{
+ return plus(num, one);
+}
+
+val ssucc(val num)
+{
+ return plus(num, two);
+}
+
+val sssucc(val num)
+{
+ return plus(num, three);
+}
+
+val pred(val num)
+{
+ return minus(num, one);
+}
+
+val ppred(val num)
+{
+ return minus(num, two);
+}
+
+val pppred(val num)
+{
+ return minus(num, three);
+}
+
val gt(val anum, val bnum)
{
tail: