我试图找出排序列表中两个数字之间的最小差异,所以我写了
(define (smallest-dif lst)
(cond
[(empty? lst) empty]
[(empty? (rest lst)) (smallest-dif (rest lst))]
[else (first (sort (cons (-(second lst) (first lst)) (smallest-dif (rest lst))) <))]))
我的示例是: (smallest-dif '(5 500 505 600 650 10000)) 但 drracket 告诉我:排序:预期违反合同:列表?给定:'(50 . 9350)
我不知道我的代码有什么问题。如果我取出“先”,程序可以正常运行。谁能帮我?谢谢。