Questions tagged «property-lists»

3
合并两个属性列表的功能?
我没有找到标准的Elisp库函数来合并两个属性列表,如下所示: (setq pl nil) (setq pl (plist-put pl 'key-1 'value-1)) (setq pl (plist-put pl 'key-2 'value-2)) 我可以用构建一些东西dolist,但是在这样做之前,我想检查一下我是否在忽略某些库中的现有函数。 根据评论进行更新: 针对“多种方式”的评论: 我可以想象没有这样的功能,因为对于这个问题可能有不同的(并且可能是有效的)答案:当您重复使用具有不同值的属性名称时该怎么办? 是的,有一个关于如何合并重复项的问题,但是解决此问题的方法相对较少。我看到两种通用方法。首先,参数顺序可以解决重复项;例如,最右边的胜利,如Clojure的merge中。其次,合并可以委托给用户提供的回调函数,就像Ruby的merge一样。 无论如何,存在不同方式的事实并不妨碍许多其他语言标准库提供合并功能。关于排序,可以说相同的一般论点,但Elisp提供了排序功能。 “你能详细说明吗?” /“请准确指定您要寻找的行为。” 一般来说,我对Elisp社区使用的内容持开放态度。如果您想要一个特定的示例,那么下面的示例将是可行的: (a-merge-function '(k1 1) '(k2 2 k3 3) '(k3 0)) 并返回 '(k1 1 k2 2 k3 0)) 这将是最右边的风格,例如Clojure的合并。 “它们是清单,所以追加?” 不,append不保留属性列表的语义。这个: (append '(k1 1 k2 2) '(k2 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.