球拍中的匹配文字

时间:2018-08-16 00:53:34

标签: racket

如何匹配球拍中的文字?这似乎不起作用:

(define (foo e)
  (match e
    [(list + e1 e2)  "+"]
    [(list - e1 e2)  "-"]))

它为(foo '(+ 1 2))(foo '(- 1 2))都返回“ +”

1 个答案:

答案 0 :(得分:3)

您想要模式(list '+ e1 e2)(list '- e1 e2)(带有'!),因为否则+-被视为普通标识符并匹配就像e1e2一样。