我正在做旧考试,为我自己的考试做好准备,教授也很好,也给了我们解决方案,现在我想知道为什么一个函数做了它应该做的事情.
(defun sortulists (L)
(mapcar (lambda (uliste)
(sort uliste (lambda (x1 x2)
(or (symbolp x2)
(and (numberp x1) (numberp x2)
(< x1 x2))))))
L))
Run Code Online (Sandbox Code Playgroud)
它应该采用一个列表L,其中包含未分类的子列表,这些子列表可能包含数字和原子,并首先对其数字进行排序,然后将符号放在最后.
当这样调用(sortulists '((A 9 b h 2) (1 m n 9 8) (5 a 7)))它返回((2 9 H B A) (1 8 9 N M) (5 7 A)).
有帮助吗?
编辑:修复缩进
我只找到了如何杀死我分配给变量的线程:
(setf *foo* (bt:make-thread (lambda () (loop)) :name "Foo2"))- >(bt:destroy-thread *foo*)
我怎么能杀死我能看到的任何线程(bt:all-threads):
(bt:make-thread (lambda () (loop)) :name "Foo")- >?