aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-04-14 21:23:40 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-04-14 21:23:40 -0700
commite33a5c88d867eb8b7e518d9ca113757d8c5f650e (patch)
treef52d77b132c297cffcc90401effce0b37b92bb64
parent3fbe59612519b2bd43b81f98fe43d043dd8a9a6f (diff)
downloadcppawk-e33a5c88d867eb8b7e518d9ca113757d8c5f650e.tar.gz
cppawk-e33a5c88d867eb8b7e518d9ca113757d8c5f650e.tar.bz2
cppawk-e33a5c88d867eb8b7e518d9ca113757d8c5f650e.zip
cons: document position function and add tests
-rw-r--r--cppawk-cons.138
-rw-r--r--testcases-cons20
2 files changed, 58 insertions, 0 deletions
diff --git a/cppawk-cons.1 b/cppawk-cons.1
index 13b4dd8..563f449 100644
--- a/cppawk-cons.1
+++ b/cppawk-cons.1
@@ -1329,6 +1329,44 @@ returns
member("a", list("c", "d")) -> nil
.ft R
+.SS Function \fIposition\fP
+.bk
+.B Syntax:
+
+.ft B
+ position(\fIy\fP, \fIx\fP)
+.ft R
+
+.B Description
+
+The
+.B position
+function searches list
+.I x
+for the leftmost element which is
+.B equal
+to
+.IR y .
+If such an element is found, its zero-based
+position from the start of the list is returned.
+if it is the first element, then zero is returned;
+if it is second, then one, and so on.
+
+If
+.IR y
+is not found, then
+.B position
+returns
+.BR nil .
+
+.B Examples:
+
+.ft B
+ position(1, list(1, 2, 3)) -> 0
+ position(3, list(1, 2, 3)) -> 2
+ position(4, list(1, 2, 3)) -> nil
+.ft R
+
.SH "SEE ALSO"
cppawk(1)
diff --git a/testcases-cons b/testcases-cons
index 1295cbc..6d14401 100644
--- a/testcases-cons
+++ b/testcases-cons
@@ -579,3 +579,23 @@ BEGIN {
nil
nil
nil
+--
+32:
+$cppawk '
+#include <cons.h>
+
+BEGIN {
+ print sexp(position(1, list(1, 2, 3)))
+ print sexp(position(2, list(1, 2, 3)))
+ print sexp(position(3, list(1, 2, 3)))
+ print sexp(position(4, list(1, 2, 3)))
+ print sexp(position(1, nil))
+ print sexp(position(nil, nil))
+}'
+:
+0
+1
+2
+nil
+nil
+nil