aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 a39b563..23302e0 100644
--- a/cppawk-cons.1
+++ b/cppawk-cons.1
@@ -1292,6 +1292,44 @@ and so forth.
listar(1, 2, 3, list(4, 5, 6)) -> (1 2 3 4 5 6)
.ft R
+.SS Function \fImember\fP
+.bk
+.B Syntax:
+
+.ftB
+ member(y, x)
+.ft R
+
+.B Description
+
+The
+.B member
+function returns the longest suffix of list
+.I x
+whose first element is
+.B equal
+to
+.IR y .
+
+If
+.I x
+does not contain an item
+.B equal
+to
+.IR y ,
+then
+.B member
+returns
+.BR nil .
+
+.B Examples:
+
+.ft B
+ member(2, list(1, 2, 3)) -> (2 3)
+ member("a", list("a", "b", "c")) -> ("a" "b" "c")
+ member("a", list("c", "d")) -> nil
+.ft R
+
.SH "SEE ALSO"
cppawk(1)
diff --git a/testcases-cons b/testcases-cons
index c4f9cd8..1295cbc 100644
--- a/testcases-cons
+++ b/testcases-cons
@@ -559,3 +559,23 @@ __cons(1, __cons(2, __cons(3, "")))
1
__cons(1, 2)
__cons(1, __cons(2, 3))
+--
+31:
+$cppawk '
+#include <cons.h>
+
+BEGIN {
+ print sexp(member(1, list(1, 2, 3)))
+ print sexp(member(2, list(1, 2, 3)))
+ print sexp(member(3, list(1, 2, 3)))
+ print sexp(member(4, list(1, 2, 3)))
+ print sexp(member(1, nil))
+ print sexp(member(nil, nil))
+}'
+:
+(1 2 3)
+(2 3)
+(3)
+nil
+nil
+nil