【发布时间】:2022-01-11 22:19:06
【问题描述】:
我是一名自学成才的软件工程师,正在努力通过遵循强烈推荐的 SICP 书来填补他们的 CS 知识空白。我在第一个练习中遇到了问题,我很确定这是一个语法问题,但我无法弄清楚。
练习 1.3:定义一个以三个数字为参数并返回两个较大数字的平方和的过程。
#lang sicp
(define (square x) (* x x))
(define (squaresum x y) (+ (square x) (square y)))
(define
(squaresumlg x y z)
(cond
(and (> x z) (> y z)) (squaresum x y)
(and (> x y) (> z y)) (squaresum x z)
(and (> y x) (> z x)) (squaresum y z)))
(squaresumlg 1 2 3)
为了运行它,我将 DrRacket 与 'sicp' 包一起使用。 and 表达式自己运行得很好,但在 cond 表达式中,我收到错误:
and: bad syntax in: and
谁能告诉我我的程序哪里出了问题?如果您对如何更有效地做到这一点有任何建议,请告诉我。
【问题讨论】:
-
我之前遇到过这个问题,但无法理解答案。我不认为它回答了我的问题,但我可能错了。