gpt4 book ai didi

list - 添加-更新 Scheme 列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:30 25 4
gpt4 key购买 nike

我有一个这种形式的列表 '( (1'()) (2 3) (3 4) (4 '()) ) 我想更新它。例如。其中第一个值 int 2 放入第二个值 5

结果是这样的

'( (1'()) (2 5) '(3 4) (4 '()) )

我有这样的想法,但我不知道如何实现它..我还想将结果插入到我使用的全局列表中

(define (update ls var1 var2)

(equal? (var1 (car (car ls))) ( ;add element to list ) (update (cdr ls) var1 var2 )

最佳答案

假设:

  1. 只有一个以 2 开头的子列表(我们要替换的那个)
  2. 输入是一个子列表列表(不是引用列表,就像我在评论中指出的那样)

... 那么一个简单的解决方案是使用 map 创建一个新列表并进行适当的更新:

(define lst '((1 '()) (2 3) (3 4) (4 '())))

(map (lambda (e)
(if (= (car e) 2) ; check if this is the pair we want to update
(list 2 5) ; if so, create a new modified sublist
e)) ; else keep the sublist as it comes
lst)

=> '((1 '()) (2 5) (3 4) (4 '()))

关于list - 添加-更新 Scheme 列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com