使用球拍返回与给定动物列表对应的动物名称列表

问题描述 投票:0回答:1

我现在正在使用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"))

当我运行代码时,

申请:不是程序;期望一个可以应用于参数的过程 给出:'(“猪”“猫”“狗”“海豚”) 参数......:[无]

问题是什么?

racket
1个回答
0
投票

first(l)改为(first l),将(rest (l))改为(rest l)。请注意,您无法在Racket中插入额外的括号。语法(l)意味着调用l,但由于l是一个列表而不是函数,因此会遇到问题。

© www.soinside.com 2019 - 2024. All rights reserved.