(setqlmbrlst (list '(2.0 1) '(3.0 1) '(5.0 1) '(6.0 1) '(7.0 3) '(12.0 4) '(14.0 1) '(16.0 2) '(18.0 5)))
(setq lgth (length lmbrlst))
textstr (strcat (itoa(cadr(assoc lgth lmbrlst))) " @ " (rtos lgth 2 1)"' long")
)
请参见上述修订内容 斯派克,
虽然BIGAL和Snownut代码肯定会工作,但也许您应该研究一下
创建列表并使其成为真正的点对列表的例程。
可以很简单地更改如下语句:
(setq yourlist (cons (list a b) yourlist)
to
(setq yourlist (cons (cons b a) yourlist))
ymg3,
我试着向斯派克展示,在他最后一条关于这个主题的帖子“列表操作”中。。。。(包括代码) 雪果,
你知道有句谚语:“你可以把马牵到河边,但你不能强迫他喝水。”。
ymg公司 好的,他要求点对,但是((a b c d)(f g h i)(j k l m))呢,因为列表不再是点对。您可以使库defun 2 vars、3 vars等等。
反过来说:“你的列表不是点对”
为了完整性,可以通过使用原子作为第二个参数评估cons函数来构造点对,例如:
或者,如果点对包含文字数据,则可以通过使用撇号或引号函数和文字列表来形成:
你也可以用两个以上的参数构造点列表,然而,在我的经验中很少用到这些参数:
然而,列表不一定是虚线对的列表,它在程序中“可行”,您可以使用当前的列表结构而不会出现问题:
事实上,如果在程序的未来扩展中,每个列表项可能有两个以上的项,则该列表结构允许扩展,同时保留向后兼容性,因为cadr总是访问列表中的第二项。
然而,如果使用点对列表,则在不修改代码其他部分的情况下,不可能将更多项合并到每一对中(因为cdr将返回列表而不是原子)。 李,
同意我们可以在程序中使用列表。
这是我们在Lisp中主要做的。
不管你怎么说,这是一个列表,不是虚线列表。
我们知道,我们可以在该列表中使用assoc。
ymg公司
对不起,你的观点是什么? 比如李,你的观点是什么?李和我都同意,只要列出一份清单,列出满足任务所需的尽可能多的小组 这能行吗。。。?
11
页:
1
[2]