Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 使用Scheme(DrRacket)搜索列表_List_Search_Scheme_Racket_Member - Fatal编程技术网

List 使用Scheme(DrRacket)搜索列表

List 使用Scheme(DrRacket)搜索列表,list,search,scheme,racket,member,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,给定:…(我的整个文件内容) 有人知道我做错了什么吗?谢谢

这是我的代码:

(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,给定:…(我的整个文件内容)

有人知道我做错了什么吗?谢谢大家:)


PS:我对Scheme真的很陌生,所以我可能忘记了一些愚蠢的语法

在scheme中调用函数的语法是
(函数名参数)
,而不是
函数名(参数)

当您编写
get artifacts(*graph*)
时,racket首先计算
get artifacts
,后者计算为自身


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

查看我对您的其他问题的回答;看起来您正在搜索sxpath,这里。

您的意思是(获取工件*图形*)?谢谢Paul,我认为这就是问题所在。我现在有其他问题,但我会尝试自己解决:)