使用Scheme搜索列表(DrRacket)

时间:2010-10-26 18:39:23

标签: list search scheme racket member

所以这是我的代码:

(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的新手,所以这可能是我忘记的一些愚蠢的语法!

2 个答案:

答案 0 :(得分:2)

在方案中调用函数的语法是(function-name arguments),而不是function-name(arguments)

当你写get-artifacts(*graph*)时,球拍首先会评估get-artifacts,并对其进行评估。

然后它尝试评估(*graph*),它是一个没有参数的函数调用。这不起作用,因为*graph*是一个列表而不是一个函数。所以你得到了错误。

答案 1 :(得分:0)

请参阅我对您的其他问题的回答;看起来你在这里寻找sxpath。