これはさすがにややこしい……。
2つのリストがあるとしましょう
(define abc '((1 (1 2 3)) (2 (2 3)) (4 (1 3))))
(define keys '(1 2))
(define value 2)
2番目のリストの最初の要素を持つ最初のリストのすべてのペアの2番目の要素から、提供された値を削除する関数を書きたい
eg. define deleteValue(abc keys value )
and result '((1 (1 3)) (2 (3)) (4 (1 3))))
私は他のsmthを行うこのコードを持っていますが、多分それは便利です
(define (decrement-assoc-values alist keys)
(map (lambda (ass)
(if (member (car ass) keys)
(list (car ass) (- (cadr ass) 1))
ass))
alist))
(define abc '((1 3) (2 3) (4 3)))
(define lst '(1 2))
(decrement-assoc-values abc lst )
Result : '((1 2) (2 2) (4 3))
これは、2 番目のリストの最初の要素を持つペアの 2 番目の要素を 1 減らします