diff options
-rw-r--r-- | lib.c | 14 | ||||
-rw-r--r-- | txr.1 | 17 |
2 files changed, 18 insertions, 13 deletions
@@ -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) @@ -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 ) |