|
@@ -123,21 +123,17 @@ a variable of the same value."
|
|
|
|
|
|
DATA is a list. Return type as a symbol.
|
|
|
|
|
|
-The type is `string' if any element in DATA is
|
|
|
-a string. Otherwise, it is either `real', if some elements are
|
|
|
-floats, or `int'."
|
|
|
- (let* ((type 'int)
|
|
|
- find-type ; for byte-compiler
|
|
|
- (find-type
|
|
|
- (function
|
|
|
- (lambda (row)
|
|
|
- (catch 'exit
|
|
|
- (mapc (lambda (el)
|
|
|
- (cond ((listp el) (funcall find-type el))
|
|
|
- ((stringp el) (throw 'exit (setq type 'string)))
|
|
|
- ((floatp el) (setq type 'real))))
|
|
|
- row))))))
|
|
|
- (funcall find-type data) type))
|
|
|
+The type is `string' if any element in DATA is a string.
|
|
|
+Otherwise, it is either `real', if some elements are floats, or
|
|
|
+`int'."
|
|
|
+ (letrec ((type 'int)
|
|
|
+ (find-type
|
|
|
+ (lambda (row)
|
|
|
+ (dolist (e row type)
|
|
|
+ (cond ((listp e) (setq type (funcall find-type e)))
|
|
|
+ ((stringp e) (throw 'exit 'string))
|
|
|
+ ((floatp e) (setq type 'real)))))))
|
|
|
+ (catch 'exit (funcall find-type data)) type))
|
|
|
|
|
|
(provide 'ob-asymptote)
|
|
|
|