我是Scheme的新手,我不知道从哪里开始。我想写一个Scheme函数,它有两个参数,列表lst
和原子atm
,并返回列表中第一个位置的索引,其中atm
发生。位置索引是1相对的。如果atm
未出现在列表中,则函数返回n + 1
,其中n
是列表的长度。查找方案列表中的元素索引
我该怎么做?
我是Scheme的新手,我不知道从哪里开始。我想写一个Scheme函数,它有两个参数,列表lst
和原子atm
,并返回列表中第一个位置的索引,其中atm
发生。位置索引是1相对的。如果atm
未出现在列表中,则函数返回n + 1
,其中n
是列表的长度。查找方案列表中的元素索引
我该怎么做?
你让一个辅助程序或命名让您的参数列表,并初始化为1
一个指标。如果列表为空或现车你正在寻找你的元素返回索引,否则你用递归cdr
并将索引增加1.
下面是一个骨架解决方案。将所有<???>
替换为适当的项目。
(define (index-of lst x)
(cond ((null? lst) <???>)
((eq? <???> x) <???>)
(else (+ (index-of <???> x) 1))))