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

如何在Scheme/Racket中实现自定义参数的乘法表生成函数

现有代码的问题
  • 函数名大小写不匹配:Scheme语言区分大小写,你定义的函数名为小写开头的multiplying-table,但递归调用时写的是大写开头的Multiplying-table,会被识别为未定义的函数触发报错。
  • 递归调用参数缺失:你定义的函数需要传入n和value两个参数,递归调用时仅传入了(- n 1),缺少第二个参数value,参数数量不匹配会触发报错。
  • 未构建返回列表:else分支中(* n value)的计算结果没有被存入返回值,且Scheme代码块默认返回最后一个表达式的结果,你当前else分支仅返回递归调用的结果,最终只会返回空列表。
  • 序列顺序错误:如果直接把当前n对应的乘积加入列表,最终得到的序列是从大到小排列,不符合需求的从小到大顺序。
修复后的实现代码
(define (multiplying-table n value)
  ;; 内部迭代函数从1开始计数生成正序序列
  (define (iter current)
    (if (> current n)
        '()
        (cons (* current value)
              (iter (+ current 1)))))
  (iter 1))
效果验证

调用(multiplying-table 10 3),会直接返回要求的列表(3 6 9 12 15 18 21 24 27 30),完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:15:07