Lisp中的位置函数出错
如果我有这样的清单 (1 2 3) 我想找到2的索引,我使用了这个函数Lisp中的位置函数出错,lisp,racket,Lisp,Racket,如果我有这样的清单 (1 2 3) 我想找到2的索引,我使用了这个函数 (position '3 '(1 2 3)) 编译时发生此错误 。位置:未定义; 无法引用未定义的标识符如果我理解正确,您只需要在列表中查找元素的索引。我还没有找到这方面的内置过程,但您可以自己轻松完成: (define (position elt lst) (let loop ((lst lst) (i 0)) (cond ((null? lst) #f) ((eq? elt (ca
(position '3 '(1 2 3))
编译时发生此错误
。位置:未定义;
无法引用未定义的标识符如果我理解正确,您只需要在列表中查找元素的索引。我还没有找到这方面的内置过程,但您可以自己轻松完成:
(define (position elt lst)
(let loop ((lst lst) (i 0))
(cond
((null? lst) #f)
((eq? elt (car lst)) i)
(else (loop (cdr lst) (+ 1 i))))))
然后
@Alaa'Agha被接受的答案提到,Racket中没有这样的内置功能,但在一些非常接近的SRFI中有一些类似的功能。
(display (position '3 '(1 2 3)))
=> 2