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

Scheme中如何将列表内元素全部转换为绝对值?代码运行报错求助

错误原因

  • cond分支结构不规范:第二个分支缺少else判断条件,直接把cons作为判断条件虽然能命中,但不符合分支写法逻辑。
  • 函数调用括号错误:cons的语法是(cons 待插入元素 目标列表),你额外给两个参数套了一层括号,变成了(cons ((abs ...) (myabs ...))),内层括号会被识别为函数调用,尝试把求出来的绝对值数字作为函数执行,同时触发了异常递归,才会出现重复的myabs调用报错。

修正后的代码

(define (myabs list) 
(cond
((null? list) '())
(else (cons (abs (car list)) (myabs (cdr list))))
))
(display (myabs '(-3 5 6 -2)))

运行输出

(3 5 6 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:04