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

length vs. list-length



My primary concern about the length function seems to have been
lost in the ensuing discussions.  I do not insist that Scheme
have a generic length function.  I do insist that the naming
convention for such functions be consistent.

Doesn't this look a little odd?
    (define generic-length
	(lambda (x)
	    (cond ((string? x) (string-length x))
		  ((vector? x) (vector-length x))
		  ((list? x) (length x)))))

I like this much better:
    (define generic-length
	(lambda (x)
	    (cond ((string? x) (string-length x))
		  ((vector? x) (vector-length x))
		  ((list? x) (list-length x)))))

We have list-ref, vector-ref and string-ref.  Why should we not
have list-length rather than length?  While we're at it, why
not have list-append rather than append?  Any functions that makes
sense for strings, lists, and vectors should be named with
the appropriate type-name prefix.  (Even though the language
doesn't specify a reverse function for vectors or strings
and since such functions would be reasonable, the reverse
function for lists should be named list-reverse.)