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,我认为这就是问题所在。我现在有其他问题,但我会尝试自己解决:)