リスト(リスト(リストのキー値)...)のようなリストがあり、キーに関連付けられたすべての値を返す関数を作成しようとしています。racket:キーに関連付けられたすべての値を返す関数を作成しようとしています
私はそうするためにマッチコンストラクトを使うことができましたが、成功することはありませんでした。
#lang racket
; should return a list starting with key, otherwise #f
(define (match-key lst key)
(match lst
[(list key val) value]
[_ #f]))
; testing data
(define test-lst
(list
(list 'title "Lorem title")
(list 'price 999.99)
(list 'colour "red")
))
(eq? "Lorem title" (match-key test-lst 'title)) ; should return #t
(eq? "Another lorem" (match-key test-lst 'title)) ; should return #f
(eq? 999.99 (match-key test-lst 'price)) ; should return #t
(eq? 111.11 (match-key test-lst 'price)) ; should return #f