2015-04-04 64 views
0

我是Scheme的新手,我不知道从哪里开始。我想写一个Scheme函数,它有两个参数,列表lst和原子atm,并返回列表中第一个位置的索引,其中atm发生。位置索引是1相对的。如果atm未出现在列表中,则函数返回n + 1,其中n是列表的长度。查找方案列表中的元素索引

我该怎么做?

回答

0

你让一个辅助程序或命名让您的参数列表,并初始化为1

一个指标。如果列表为空或现车你正在寻找你的元素返回索引,否则你用递归cdr并将索引增加1.

1

下面是一个骨架解决方案。将所有<???>替换为适当的项目。

(define (index-of lst x) 
    (cond ((null? lst) <???>) 
     ((eq? <???> x) <???>) 
     (else (+ (index-of <???> x) 1))))