[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Proposal: count

This page is part of the web mail archives of SRFI 101 from before July 7th, 2015. The new archives for SRFI 101 contain all messages, not just those from before July 7th, 2015.



While `length' gives you number of pairs in a list, it's also useful to determine the number of pairs in a (potentially) improper list. Since an efficient implementation of this procedure cannot be defined outside the random-access library, I propose adding the following procedure.

Unless there are objections, I will add this to the next revision of the SRFI.

David


procedure: (count obj) -> k

Returns the number of pairs in the chain of pairs, obj. When given a list, this procedure returns a result equivalent to (length obj). This operation must take time bounded by O(log k).

(count '(a b c))       => 3
(count '(a (b) (c)))   => 3
(count '(a b . c))     => 2
(count '())            => 0
(count 5)              => 0