summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib.c14
-rw-r--r--txr.117
2 files changed, 18 insertions, 13 deletions
diff --git a/lib.c b/lib.c
index 746f0e72..95e7573c 100644
--- a/lib.c
+++ b/lib.c
@@ -1021,18 +1021,8 @@ val nullify(val seq)
val seqp(val obj)
{
- switch (type(obj)) {
- case NIL:
- case CONS:
- case LCONS:
- case VEC:
- case STR:
- case LSTR:
- case LIT:
- return t;
- default:
- return nil;
- }
+ seq_info_t si = seq_info(obj);
+ return tnil(si.kind != SEQ_NOTSEQ);
}
loc list_collect(loc ptail, val obj)
diff --git a/txr.1 b/txr.1
index a7df3a1f..7b640f76 100644
--- a/txr.1
+++ b/txr.1
@@ -27715,11 +27715,26 @@ if
is a sequence, otherwise
.codn nil .
-A sequence is defined as a list, vector or string. The object
+Lists, vectors and strings are sequences. The object
.code nil
denotes
the empty list and so is a sequence.
+Objects of type
+.code buf
+and
+.code carray
+are sequences, as are hash tables.
+
+Structures which implement the
+.code length
+or
+.code car
+methods are considered sequences.
+
+No other objects are sequences. However, future revisions of
+the language may specify additional objects that are sequences.
+
.coNP Functions @ length and @ len
.synb
.mets (length << object )