سؤال

إذن هذا هو الكود الخاص بي:

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

أي شخص يرى ما أفعله خطأ؟ شكرا يا رفاق :)

ملاحظة: أنا جديد حقًا في المخطط ، لذا فمن المحتمل أن يكون هناك جملة غبية أنسى!

هل كانت مفيدة؟

المحلول

بناء الجملة لاستدعاء وظيفة في المخطط (function-name arguments), ، ليس function-name(arguments).

عندما تكتب get-artifacts(*graph*), ، يقيم المضرب أولاً get-artifacts الذي يقيم لنفسه.

ثم يحاول التقييم (*graph*), ، وهو ما يتطلبه الأمر ليكون مكالمة وظيفة بدون وسيطات. هذا لا يعمل بسبب *graph* هي قائمة وليس وظيفة. حتى تحصل على الخطأ.

نصائح أخرى

انظر إجابتي على سؤالك الآخر ؛ يبدو أنك تبحث عن SXPath ، هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top