私はSchemeがまったく初めてで、独自の map 関数を実装しようとしています。私はそれをオンラインで見つけようとしましたが、遭遇したすべての質問は、いくつかの複雑なバージョンの map 関数 (2 つのリストを入力として受け取る関数のマッピングなど) に関するものでした。
私が見つけた最良の答えはここにあります:( For-each and map in Scheme )。この質問のコードは次のとおりです。
(define (map func lst)
(let recur ((rest lst))
(if (null? rest)
'()
(cons (func (car rest)) (recur (cdr rest))))))
あいまいな関数を使用しているため、問題は解決しませんrecur
。私には意味がありません。
私のコードは次のようになります。
(define (mymap f L)
(cond ((null? L) '())
(f (car L))
(else (mymap (f (cdr L))))))
この言語でプログラミングするときの関数型アプローチの背後にあるロジックは理解していますが、コーディングには非常に苦労しています。