为了有用,我们可能需要一个函数,需要一个月的名称和记录列表,并返回匹配的记录列表:
#lang racket
;; string ListOf(ListOf(String Int Int)) -> ListOf(ListOf(String Int Int))
(define (get-month target-month list-of-record)
;; ListOf(String Int Int) -> Boolean
(define (record-matches? record)
(regexp-match target-month (first record)))
(filter record-matches? list-of-record))
然后我们就可以在查询,如使用它:
"scratch.rkt"> (get-month "may"
'(("may 001" 75 72)
("may 002" 75 75)
("may 003" 70 73)
("june 101" 55 55)
("june 104" 55 54)
("aug 201" 220 220)))
'(("may 001" 75 72) ("may 002" 75 75) ("may 003" 70 73))
"scratch.rkt"> (get-month "april"
'(("may 001" 75 72)
("may 002" 75 75)
("may 003" 70 73)
("june 101" 55 55)
("june 104" 55 54)
("aug 201" 220 220)))
'()
显示所需的输出是很重要的,但我认为您还需要显示原始*输入*。 –
输出=>原始输出 – KLMM
是的,我看到你正在显示*实际*输出和*所需*输出。这是好事。但是,输入是什么?生产它的功能是什么?原始输入是100个元素的列表吗?它是如何减少到6个元素的列表?您没有向我们展示整个问题,并且您没有提供任何有错误的代码等。 –