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))))