我是一个初学者,对方案有非常基本的了解,在理解如何解决一个练习方面有点麻烦。给定类似于以下结构的列表:
(define-struct swimmer (name country time))
(define list-swimmers
(list
(make-swimmer "Hans" 'Germany 187.34)
(make-swimmer "Fred" 'USA 209.12)
(make-swimmer "Bianca" 'France 192.01)
(make-swimmer "Adolf" 'Germany 186.79)
我必须创建一个使用国家名称和列表名称的程序,并从该国家/地区的每个游泳者中产生最佳时间,以及另一个使用国家/地区列表并与国家/地区产生结果的程序,然后是最好的各自时间,即
(listof swimmer) (listof symbol) -> (listof (list symbol number))
我在练习中遇到了很多麻烦,到目前为止,我只设法编写了一个程序来检查列表中是否存在国家名称并返回真/假:
(define (contains-country? c a-list-of-swimmers)
(cond
[(empty? a-list-of-swimmers) false]
[(cons? a-list-of-swimmers)
(cond
[(symbol=? (swimmer-country (first a-list-of-swimmers))c) true]
[else
(contains-country? c (rest a-list-of-swimmers))])]))
(define (best-time-by-country (contains-country? c a-list-of-swimmers)))
我不知道我应该从这里去哪里。任何帮助深表感谢。提前致谢。