尝试与 Racket 中的字符串进行模式匹配以将它们附加在一起

Attempting to pattern match with Strings in Racket to append them together

我正在尝试让我的程序将一个字符串添加到另一个字符串,如果格式正确的话。

我当前的代码是

(define (addString e)
 (match e
   [`(+ , x, y) (string-append x y)]))

所以当我 运行 (addString (+ "a" "b")) 它 returns "ab"

但是,它给出了一个错误:“匹配:`+ 没有匹配的子句”。我做错了什么?

快到了!你只需要引用输入。此外,match 子句中的 , 应该写在您要评估的变量旁边(尽管它按照您的方式工作,但可能会有点混乱)。这就是我的意思:

(define (addString e)
 (match e
   [`(+ ,x ,y) (string-append x y)]))

它按预期工作:

(addString '(+ "a" "b"))
=> "ab"