我定義在elisp的一個函數來查找列表的索引用矢量:平等載體串
(defun vposition (e v)
(letrec
((f (lambda (e v i)
(if (equal e (elt v i))
i
(f e v (+ i 1))))))
(f e v 0)))
如果我使用它的數字它的罰款,但與字符串,例如(vposition "bar" ["foo" "bar" "thing"])
,我得到一個錯誤:
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p "bar")
=("bar" "foo")
如果我這樣做,比方說,(vposition 3 [1 2 3])
,它按預期工作,並(equal "bar" "foo")
作品也一樣,所以我不能孤立問題的所在。我錯過了什麼?
真的很徹底的答案 - 謝謝! – amindfv