Это мой код:Использование функции члена в схеме
(define p (read(open-input-file "starbucks4.sxml")))
(define get-artifacts
(lambda (l)
(member (list 'opm:artifact) l)))
(get-artifacts p)
мне сказали, что функция член полностью выполняет поиск по всему списку. В документе .sxml есть сложный список, который содержит много элементов, называемых «opm: artifact», но этот метод возвращает #f и нет списка.
Может ли кто-нибудь увидеть, что я делаю неправильно?
Пример .sxml файла:
(opm:account ((ref "detailedAccount")))
"\n "
(opm:label ((value "Provide other Beverage")))
"\n ")
"\n ")
"\n "
(opm:artifacts
()
"\n "
(opm:artifact
((id "a1"))
"\n "
(opm:account ((ref "detailedAccount")))
"\n "
(opm:label ((value "order")))
"\n ")
"\n "
(opm:artifact
((id "a2"))
"\n "
(opm:account ((ref "detailedAccount")))
"\n "
(opm:label ((value "cash")))
"\n ")
"\n "
Я пытаюсь искать все OPM: артефакты и связанные с ними данные (это подсписки).
Спасибо, что бы найти символ opm: artefact? – Alex
@Alex: '(deep-search 'opm-artifact p)' Обратите внимание, что это вернет true или false. Вам нужно немного изменить его, если вам нужно больше. – sepp2k
@Alex: Также обратите внимание, что в файле примера вы показали, что 'p' будет содержать только' (opm: account ((ref "detailAccount"))) ', так как' read' только читает одну форму. – sepp2k