我一直在尝试编写一个名为short的过程,它接受两个都是列表的参数。我可以使用'x'和'y'来表示列表将作为参数输入吗?我已经写出了程序,我没有看到任何错误,但当我尝试运行它时,交互面板说“应用程序:不是一个过程;期望一个可以应用于参数的过程 给出:2 参数...
3" 我不太清楚如何解释这个。我写的程序如下。
(define (shorter x y)
(if ((length x) < (length y))
x
(if ((length x) > (length y))
y
x)))
答案 0 :(得分:4)
Racket是一种前缀语言,这意味着运算符应该在参数之前出现。怎么样:
(define (shorter x y)
(if (< (length x) (length y))
x
(if (> (length x) (length y))
y
x)))
...或
(define (shorter x y)
(if (<= (length x) (length y))
x
y))