1

これはさすがにややこしい……。

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 減らします

4

1 に答える 1