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