2

我不清楚为什么这个条件会给出错误的类型来应用错误。

scheme@(guile-user) [12]>(cond ((equal? "i" "i") => (display "yay")))

错误:在程序#中:

错误:应用错误的类型:#

scheme@(guile-user) [12]>(cond ((string= "i" "i") => (display "yay")))

错误:在程序#中:

错误:应用错误的类型:#

4

1 回答 1

0

通常的语法cond如下:

(cond ((equal? "i" "i")
       (display "yay")))
; prints yay

当我们=>想将条件的结果作为参数传递给被执行的函数时,我们会使用,例如:

(cond ((equal? "i" "i") 
       => display))
; prints #t

在上面的代码中,条件计算为#t,并#t作为参数传递给display,然后打印出来。

于 2016-06-21T16:24:27.887 回答