球拍 - 两个列表比较列表和值的问题

Racket - Two Lists Problem with comparing a list and a value

我正在尝试编写一个函数,该函数使用目的地列表、与目的地对应的价格列表以及预算。然后它会生成一个字符串列表,表示目的地及其价格,以 space 分隔,根据预算可以负担得起。 有人可以帮我找出代码中的错误吗?它不能正常工作:(

(define (vacations destinations prices budget)
  (cond
    [(empty? destinations) empty]
    [(<= budget (first prices)) (cons (string-append (first destinations) " " (int->string (first prices)))
                                     (vacations (rest destinations) (rest prices) budget))]
    [else (vacations (rest destinations) (rest prices) budget)]))

(check-expect (vacations (list "Maldives") (list 1599) 250) empty)
(check-expect (vacations(list "Maldives") (list 1599) 1599)
              (list "Maldives 1599"))
(check-expect (vacations(list "Alberta" "BC" "Manitoba") (list 500 459 300) 460)
              (list "BC 459" "Manitoba 300"))

你的函数几乎是正确的。那么唯一的错误是条件的第二个分支中的比较运算符:

(<= budget (first prices))表示如果预算小于或等于价格,则将该地点视为可能的假期。

简单地反转条件:

(>= budget (first prices)):如果预算大于或等于价格,则认为该地点是可能的假期。