Scheme:将元组/对添加到元组列表的末尾
我想在pair/tuple列表的末尾添加一个pair/tuple。我只想给它最后一个号码/优先权 打电话的时候 (添加“奶酪”购物清单) 我想回去: ((“牛奶”1)(“鸡蛋”2)(“奶酪”3)) 但我现在回来了: ((“牛奶”1)(“鸡蛋”2)“奶酪”3) 我是Scheme的初学者,非常感谢您的帮助Scheme:将元组/对添加到元组列表的末尾,scheme,racket,Scheme,Racket,我想在pair/tuple列表的末尾添加一个pair/tuple。我只想给它最后一个号码/优先权 打电话的时候 (添加“奶酪”购物清单) 我想回去: ((“牛奶”1)(“鸡蛋”2)(“奶酪”3)) 但我现在回来了: ((“牛奶”1)(“鸡蛋”2)“奶酪”3) 我是Scheme的初学者,非常感谢您的帮助 (define shopping-list '( ("Milk" 1) ("Eggs" 2))) (define (addItem k lst) ( let ( [ queue-length
(define shopping-list '( ("Milk" 1) ("Eggs" 2)))
(define (addItem k lst)
( let ( [ queue-length (length lst)])
(append lst (list k (+ queue-length 1)))
)
)
(addItem "Cheese" shopping-list)
我想您可能需要
(追加lst(list(list k(+queue length 1)))
(注意对list
的额外调用)。是的,就是这样。非常感谢。如果要更改列表,需要使用append代码>(请注意末尾的“砰”一声),这将改变列表的位置,而不是简单地构造一个新的。否则,调用函数时需要始终设置变量的值,如:(set!shopping list(addItem“Cheese”shopping list))
。请记住,使用set类似这样的变量上的code>也意味着对前面列表的任何引用都不会指向变量赋值后的新列表。