如何编写sort-nums或更好的版本

时间:2011-03-19 18:58:31

标签: sorting

所以我正在尝试编写一个名为sort-nums的程序,这样我就可以获得所有数字并按照这样排序

(define(sort-nums lst) (if(null?lst)null (如果(数字?(车辆) 我希望这部分保留数字,然后删除任何不是数字的东西 (sort(cons(car lst)(sort-nums(cdr lst)))))))

如果可能的话,这项工作还是我需要以不同的方式编写一个例子来证明它的工作原理就像

(sort-nums(列出'a'c 24'f'g 16)) (16 24)

1 个答案:

答案 0 :(得分:1)

您可以通过单独分类和剥离数字来让您的生活更轻松。尝试

(sort (list-transform-positive '(a 2 b 1) 
                               number?) 
       <)

首先,我们只选择那些数字(使用list-transform-positive),然后我们按升序排序(使用sort)。

作为一般提示,如果您智能地缩进,您会发现lisp更容易使用。