【发布时间】:2010-10-09 06:56:29
【问题描述】:
我创建了一个不错的小程序:
(defun unzip (seq)
"Takes an even-length list and breaks it apart by evens/odd index"
(let ((oddresult '())
(evenresult '()))
(loop for n from 0 to (- (length seq) 1) do
(if (oddp n)
(push (nth n seq) oddresult)
(push (nth n seq) evenresult)))
(list (reverse oddresult) (reverse evenresult))))
并使用它:
CL-USER> (unzip '(1 2 3 4 5 6))
((2 4 6) (1 3 5))
但是,我敏锐地意识到我有能力用任何语言编写拙劣的 C++,并希望对我的 unzip 进行一些分析,以获得良好的 Common Lisp 风格。
【问题讨论】:
-
取笑某人的语言障碍是不礼貌的。
-
@Paul Nathan 结果应该是
((1 3 5) (2 4 6)),对吧? -
@ring0:在任何编程语言中,都有一个成语和一个正确的风格,并且有兴趣学习和讨论。甚至还有一个新词——“pythonic”。
-
括号太多。
-
@Frank:我认为戴夫是开玩笑的。
标签: lisp common-lisp