Scheme-Source表达式无法匹配任何模式

时间:2015-02-27 06:47:11

标签: scheme

我在Scheme中编写一个程序来操作一些列表和一些自定义类型。我写了以下短代码,它给了我以下错误:

Source expression failed to match any pattern

为什么会出现此错误?我想这是因为我使用了let *但是我仔细检查了语法并且我的用法是正确的。这是我的代码:

(define (create-evaluation-link wp)
  (define x (get-first-word wp))
  (define y (get-second-word wp))
  (if (null? (ListLink x y))
      ((EvaluationLink 
        (MSTLinkNode "MA")
        (ListLink x y)))
      (let* ((ll (ListLink x y))
             (in (cog-incoming-set ll))
             (mst (get-mst-node in))))))

我做错了吗?

在这种情况下,

get-mst-node是一个函数。

1 个答案:

答案 0 :(得分:2)

您的let*表单缺少正文(使用绑定的代码)。即使身体只是简单地返回mst,也是如此:

(let* ((ll (ListLink x y))
       (in (cog-incoming-set ll))
       (mst (get-mst-node in)))
  mst)