我现在正在使用racket来构建函数,该函数返回与给定动物列表对应的动物名称列表。 但是出现了问题。
(define (name-pets l)
(cond
[(eq? "dog" first(l)) (append 'happy (name-pets (rest (l))))]
[(eq? "cat" first(l)) (append 'smart (name-pets (rest (l))))]
[(eq? "pig" first(l)) (append 'pinky (name-pets (rest (l))))]
[else (append 'unnamed (name-pets (rest (l))))]))
(name-pets (list "pig" "cat" "dog" "dolphin"))
当我运行代码时,
申请:不是程序;期望一个程序可以 适用于论据 给出:'("猪""猫""狗""海豚")
参数......:[无]
有什么问题?
答案 0 :(得分:0)
将first(l)
更改为(first l)
,将(rest (l))
更改为(rest l)
。
请注意,您无法在Racket中插入额外的括号。
语法(l)
表示调用l
,但由于l
是列表而不是函数,
你遇到了问题。