連想リストを操作する関数を作ってみた
Java でいう HashMap みたいなものが欲しいなと思って
連想リストとかいうものを作ってみた。
なんだか SRFI-69 とやらで定義されているみたいなので
車輪の再発明をしただけ感満載。
Gosh で動かせます。
;; Key-value 形式リストからデータを取得する ;; #?=(memo-pick-value '(0 1) '(((0 1) #t) ((0 2) #f))) ;; >> #t (define memo-pick-value (lambda (key lat) (cond ((null? lat) '()) ((equal? key (caar lat)) (cadar lat)) (else (memo-pick-value key (cdr lat)))))) ;; Key-value 形式リストにデータを追加する ;; #?=(memo-push-value '(((0 1) #t) ((0 2) #f)) '((0 3) #f)) ;; >> (((0 1) #t) ((0 2) #f) ((0 3) #f)) (define memo-push-value (lambda (lat value) (cond ((null? lat) (cons value '())) (else (cons (car lat) (memo-push-value (cdr lat) value))))))