新しいデータを渡さずにRacketに保存されたリストにアクセスする方法はありますか? 過去の応答のリストは、私が取り組んでいるプログラムで次のコードを使用して保存されます。
(define (storage response lst)
(cons response lst))
これは、質問に対する回答と前のリストを取得してリストを作成します。リストの内容を変更したくありません。単にその内容を確認するだけです。他のコードが必要な場合は、私が持っているものを喜んで示します。
Racket でリストの要素にアクセスする標準的な方法は、first
andrest
プロシージャ (または同等のcar
and cdr
) を使用して、リストを再帰的に反復することです。"404"
たとえば、リストに応答が含まれているかどうかを確認したいとします。
(define responses '("302" "403" "404" "505"))
(define (find-response lst response)
; the list is empty, the element was not found
(cond ((empty? lst)
#f)
; `first` accesses the first element in the list
((equal? (first lst) response)
#t)
(else
; `rest` advances to the next elements in the list
(find-response (rest lst) response))))
(find-response responses "404")
=> #t
(find-response responses "201")
=> #f
もちろん、これがどのように機能するかを理解したら、たとえばmember
他の回答で提案されているように、既存の手順を移動して使用できます。使用可能な手順の一覧をご覧ください。最も頻繁に使用される操作が既に実装されており、自由に使用できることがわかります。