【发布时间】:2015-04-15 05:24:52
【问题描述】:
所以,我正在研究 Scheme(MIT Scheme)中的排序。我已经想出了如何对一个基本的整数列表进行排序,但是我似乎不太明白如何对一个列表列表进行排序。下面是通过选择排序对整数列表进行排序的代码:
(define sortdata
(lambda (lst min)
(cond ((null? lst) min) ;null list, return current
((< (car lst) min) (sortdata (cdr lst) (car lst))) ;compare with head of list
(else (sortdata (cdr lst) min))
)
)
)
因为我刚开始使用它,所以我对方案不是很精通。而不是像这样对列表进行排序:(4 8 9 2 6 15 3),我试图对列表列表进行排序,但仅按子列表的一个字段(在这种情况下为年龄)。如:(("bob" 17)("mary" 14)) [假设第一个字段是姓名,第二个字段是年龄。]
编辑:因此,排序后的列表将如下所示:(("mary" 14)("bob" 17))
非常感谢任何可以帮助或为我提供良好参考的人!
【问题讨论】:
-
您的整数排序代码似乎不起作用。