所以这是我的代码:
(define *graph* (read(open-input-file "starbucks4.sxml")))
(define get-artifacts
(lambda (l)
(member (list 'opm:artifact) l)))
当我输入get-artifacts(*graph*)
时,我收到错误提示procedure application: expected procedure, given:...(the whole of my file contents)
任何人都能看到我做错了什么?谢谢你们:))
PS:我是Scheme的新手,所以这可能是我忘记的一些愚蠢的语法!
答案 0 :(得分:2)
在方案中调用函数的语法是(function-name arguments)
,而不是function-name(arguments)
。
当你写get-artifacts(*graph*)
时,球拍首先会评估get-artifacts
,并对其进行评估。
然后它尝试评估(*graph*)
,它是一个没有参数的函数调用。这不起作用,因为*graph*
是一个列表而不是一个函数。所以你得到了错误。
答案 1 :(得分:0)
请参阅我对您的其他问题的回答;看起来你在这里寻找sxpath。