linshiyin2
发表于 2011-11-17 08:55:14
xiaxiang 发表于 2011-11-13 17:46 static/image/common/back.gif
纯粹凑个热闹,不懂如何提速。如果能知道是正向提取还是逆向提取,会不会好些。
递归法,从1开始,不能为0 ...
测试表长度,通过判断删除元素在的位置,然后决定倒置表否就可以正向还是逆向了。
linshiyin2
发表于 2011-11-17 09:03:43
我提个建议,大家都写了不少好程序,但是好多达人没有回收函数,这个小技巧大家不会不清楚吧,内存不回收的坏习惯可不好。
举个例子先:
(defun test1(lst n /)
(setq m 0 lst_1 '() i 0)
(repeat (length lst)
(if (/= m n)
(setq lst_1(cons (nth i lst)lst_1 ))
)
(setq m (1+ m)
i (1+ i))
)
(setq lst_1 (reverse lst_1))
)
其中m,i,lst_1都没有回收。
还有写程序没有解释
狂刀lxx
发表于 2011-11-19 15:37:37
本帖最后由 狂刀lxx 于 2011-11-19 17:44 编辑
;;如果....,提个改进思路,没有具体验证结果是否正确,如果不对大家自己可以调整一下。
谁帮测试一下?
加了一个代码 (setq i (1+ i)) 这回该对了
;; by 狂刀lxx2011.11
;; by 狂刀lxx2011.11
(defun xl-nr(i lst / n)
(setq i (1+ i))
(defun xxx (i lst / lst2)
(repeat (/ i 4)
(setq lst2(cons(cadddr lst)(cons(caddr lst)(cons(cadr lst)(cons (car lst) lst2))))
lst (cddddr lst))
)
(repeat (rem i 4)
(setq lst2(cons (car lst) lst2)
lst (cdr lst))
)
(append (reverse lst2)(cdr lst))
)
;;;(if (equal (vl-position (nth i lst) lst) i);;未完待续
;;; nil;;未完待续
;;; (progn;;未完待续
(setq n (length lst))
(if (< i (* n 0.5))
(xxx i lst)
(reverse (xxx (- n i) (reverse lst)))
)
;;; );;未完待续
;;; );;未完待续
)
czb203
发表于 2011-11-20 00:04:44
测试一下,真的还不错啊 谢谢啊
nzl1116
发表于 2011-11-24 16:08:09
发一个将表转换成字符串
(defun removeItem1 (m mLst / aStr charNum mItem posit rvStr aLst bLst bStr)
(setq aStr(vl-prin1-to-string mLst)
charNum (strlen aStr)
aStr(substr (substr aStr 1 (1- charNum)) 2)
m (1- m)
mItem (nth m mLst)
posit (vl-position mItem mLst)
rvStr ""
aLstmLst
)
(while (> m posit)
(setq bLst (cdr (member mItem aLst))
bStr (vl-prin1-to-string bLst)
charNum (strlen bStr)
bStr(substr (substr bStr 1 (1- charNum)) 2)
rvStr (strcat rvStr (vl-string-subst "" bStr aStr))
m (- m posit 1)
aStr bStr
aLst bLst
posit (vl-position mItem aLst)
)
)
(read (strcat "(" rvStr (vl-string-subst "" (vl-prin1-to-string mItem) aStr) ")"))
)
dxj958
发表于 2012-2-12 21:07:17
超精采,超精采
露草
发表于 2012-4-12 18:54:55
高手真多还没有考虑速度这个因素
328302216
发表于 2012-11-27 22:46:30
这么多高手都喜欢玩这个吖呵呵
gtj116600
发表于 2013-5-28 15:21:42
这个是好东东
q3_2006
发表于 2013-6-17 10:18:37
脑子用不过来了!