vanowm 发表于 2022-7-5 19:58:04

是否附加到关联列表?

你好
 
我在绞尽脑汁想如何使用关联列表。
 
我的目标是创建一个填充全局列表的函数。它需要接受assoc的名称和它将附加到其中的值。
例如,现有列表:
("blah1" (1 2 3 5)
"blah2" (4 3 2 1)
)我想将(4 6 7)添加到“blah1”列表中,(1 5)添加到“blah2”中,并将另一个列表添加为带有值(3 4 5)的“blah3”
因此最终结果是:
在javascript中,这是非常简单的:
var myList = {
   blah1: ,
blah2:
};
function addToList (key val)
{
   myList.push(val);
}

addToList("blah1", );
addToList("blah2", );
addToList("blah3", );

 
谁能帮忙吗。
 
非常感谢。

pBe 发表于 2022-7-5 20:20:22

是否希望提示您输入新的/附加列表值,或者是否有其他来源?

vanowm 发表于 2022-7-5 20:31:07

不,没有提示,脚本的其他部分将提供它们,我需要一个用提供的值填充列表的函数

pBe 发表于 2022-7-5 20:45:25

(defun addTListDemo(addvalues existinglist)
   (foreach
            valueaddvalues
         (Setq existinglist
                      (if (setq AddorNew
                                     (assoc (car value)
                                          existinglist))
                            (subst (list (car AddorNew)
                                       (append (cadr AddorNew)
                                                 (cadr value)))
                                 AddorNew
                                 existinglist)
                            (append existinglist (list value))
                            )
               )
         )
   existinglist
   )
 
(setq lst '(( "BLAH1" (1 2 3 5))("BLAH2" (4 3 2 1))))

( addtlistdemo '(("BLAH1" (4 6 7))("BLAH2" (1 5))("BLAH3" (3 4 5))) lst)

(("BLAH1" (1 2 3 5 4 6 7)) ("BLAH2" (4 3 2 1 1 5)) ("BLAH3" (3 4 5)))
 
个人
 
(defun addTListDemoi(addvalue existinglist)                  
   (if (setq AddorNew (assoc (car addvalue) existinglist))
                 (subst (list (car AddorNew)
                      (append (cadr AddorNew)(cadr addvalue)))
                      AddorNew existinglist)
                 (append existinglist (list addvalue))
         )
   )
 
6
 
 
 
题外话@kaan27:超出PM配额/谁是原始作者/看不到链接上的图像/它做了什么/为什么不在黑板上发布请求?

vanowm 发表于 2022-7-5 20:54:46

非常感谢你!第二个例子正是我想要的。

pBe 发表于 2022-7-5 21:02:50

很好,瓦诺姆,欢迎你。希望您能从演示代码中学习。
 
干杯
页: [1]
查看完整版本: 是否附加到关联列表?