啵浪鼓 发表于 2011-5-30 01:17:46

表里的数提取

如下的表里的数据分别求出长和宽,并分别将长和宽赋值给q1~qn

如下表第一组长宽分别赋值给q1l / q1k,第二组长宽分别赋值给q2l / q2k,,,直到qnl / qnk
下表中每组表示一个点对,省去了小数点后的显示
(((5 5 0) (6 6 0)) ((5 5 0) (7 7 0)) ((5 5 0) (8 8 0)) ((5 5 0) (9 90)) ((5 5 0) (10 10 0)))

分开赋值后的函数,如何求真?
(if (and qnl qnk)   ;;;这里要怎样求真?如果有100求到1的话,那程序岂非很大应该不是这样的语法吧? length这个函数应该起到关键作用,搞不懂怎样求真,求高手!

caoyin 发表于 2011-5-30 01:32:55

;;;一般这种情况,最好不要赋值,LISP处理表的能力还是很强的,
;;;foreach,mapcar,while,repeat,nth,member,car,cdr等等


(setq I 1)
(foreach X
'(((5 5 0) (6 6 0)) ((5 5 0) (7 7 0)) ((5 5 0) (8 8 0)) ((5 5 0) (9 90)) ((5 5 0) (10 10 0)))
(setq STR (strcat "Q" (itoa I))
      I   (1+ I)
)
(mapcar 'set (list (read STR) (read (strcat STR "K"))) X)
)

if 发表于 2011-5-30 07:09:47

没必要赋值,nth直接提取就行了
页: [1]
查看完整版本: 表里的数提取