length's argument is a sequence
authorBT Templeton <bpt@hcoop.net>
Sun, 1 Apr 2012 19:59:42 +0000 (15:59 -0400)
committerBT Templeton <bpt@hcoop.net>
Sun, 1 Apr 2012 19:59:42 +0000 (15:59 -0400)
* module/language/elisp/boot.el (length): Use `length' if the argument
  is a list or `generalized-vector-length' otherwise.

module/language/elisp/boot.el

index 53711e1..f55722a 100644 (file)
 
 ;;; Sequences
 
-(fset 'length (@ (guile) length))
+(defun length (sequence)
+  (funcall (if (listp sequence)
+               (@ (guile) length)
+             (@ (guile) generalized-vector-length))
+           sequence))
 
 (defun mapcar (function sequence)
   (funcall (@ (guile) map) function sequence))