Поиск по спискам с помощью схемы (DrRacket) - PullRequest
1 голос
/ 26 октября 2010

Итак, вот мой код:

(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 ]

2 голосов
/ 26 октября 2010

Синтаксис для вызова функции в схеме: (function-name arguments), а не function-name(arguments).

Когда вы пишете get-artifacts(*graph*), ракетка сначала оценивает get-artifacts, который оценивает сам себя.* Затем он пытается оценить (*graph*), что требуется для вызова функции без аргументов.Это не работает, потому что *graph* это список, а не функция.Итак, вы получите ошибку.

0 голосов
/ 03 ноября 2010

Смотрите мой ответ на ваш другой вопрос; похоже, вы ищете sxpath, здесь.

...