计划cond中的多个程序

时间:2018-01-24 00:06:42

标签: scheme lisp

在我的cond的一个案例中,我需要执行多个过程,然后在结尾返回一个值。但是,我当前的实现给了我一个错误:

application: not a procedure; expected a procedure that can be applied to arguments

(cond
    [(string? expr) expr]
    [(number? expr) expr]
    [(list? expr) (begin 
        (hash-set! my-table (car expr) (cdr expr))
        ("hi")  ; I want to return this
    )
    ]
)

有人可以帮我理解我在cond中有多行吗?

1 个答案:

答案 0 :(得分:2)

cond中的多行不是你的问题,而是(“hi”)。你试图把“hi”称为程序,把它放在parens中,“hi”是一个字符串,而不是程序。

实际上,您不需要(begin ...)表单中有多行。只需在测试后放置您想要的线条。