我在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是一个函数。
答案 0 :(得分:2)
您的let*
表单缺少正文(使用绑定的代码)。即使身体只是简单地返回mst
,也是如此:
(let* ((ll (ListLink x y))
(in (cog-incoming-set ll))
(mst (get-mst-node in)))
mst)