You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SML转Racket:如何实现dates_in_month日期筛选函数?

在Racket中实现dates_in_month函数

你可以利用Racket内置的filter函数快速实现这个功能,核心思路是筛选出列表中月份与目标月份匹配的日期:

(define (dates_in_month target-month dates)
  (filter (lambda (date)
            ;; 取出日期的第二个元素(月份)与目标月份比较
            (= (second date) target-month))
          dates))

测试示例

调用时注意列表需要用单引号标记(避免被解析为函数调用):

(dates_in_month 5 '((2002 05 12) (1999 05 12) (1980 12 20)))

返回结果:

'((2002 05 12) (1999 05 12))

关键说明

  • filter:Racket内置的列表过滤函数,接收一个判断逻辑和待处理列表,返回符合条件的元素组成的新列表。
  • (second date):Racket中用于取出列表(或元组)第二个元素的函数,这里用来获取日期中的月份值。
  • 匿名函数lambda:定义临时的判断逻辑,检查当前日期的月份是否等于目标月份。

内容的提问来源于stack exchange,提问作者user16818633

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:00:54