求助,关于变量赋值的问题
已知表1 ("a" "b" "c" "d" "e")
表2 (1 2 3 4 5)
有没有一个函数可以将表2中的值一一对应地赋值给a b c d e?
多谢! 做一个
(defun assign (lst1 lst2)<BR> (foreach atm lst1<BR> (set (read atm) (car lst2))<BR> (setq lst2 (cdr lst2))<BR> )<BR>) <A href="dispbbs.asp?boardID=3&ID=20236&page=1" target="_blank" >dispbbs.asp?boardID=3&ID=20236&page=1</A>
(mapcar 'set (mapcar 'read list1) list2)
通过以上两个例子,你是否应该好好琢磨一下mapcar的用法 (setq var-list1 (list "kn" "h" "l1" "b1" "t1" "s1" "l2" "b2" "t2" "l3" "b3" "t3" "e" "d" "m" ))<BR>(setq var-list (mapcar '(lambda (x) (strcat "sl-" x))<BR> var-list1<BR> )<BR>)
(mapcar 'action_tile var-list "(set (mapcar 'read var-list1) (read $value))")
var-list 是dcl控键的key值的list,如果要每个都写action_tile语句的话那将很麻烦,可我像上面那样写又不行,飞哥帮忙看看! 看看第一个mapcar函数的第三个参数,"(set (mapcar 'read var-list1) (read $value))",mapcar后面的参数都应该是表,你为什么给一个字符串?
还有set函数,后面的mapcar返回的必定是表,set后面能跟表参数吗?你这个写法错误太多,还没有熟练运用mapcar函数,不过你的这个想法很好,我试试先 飞哥,如果可行的话,这种做法就很值得关注,不然就很麻烦 (mapcar 'action_tile var-list1 (mapcar '(lambda(e) (strcat "(setq " e " (read $value))")) var-list)) 我也想过用lambda,但转来转去转胡涂了,谢谢飞哥啊…… 飞哥,我试过了,程序启动时,改行运行,但再要是修改编辑框的话,它并没有执行ACTION_TILE语句,不知怎么回事,请赐教…… 程序内容呢?
我自己写的测试程序是可以的