تنفيذ التعليمات البرمجية المخزنة على شكل قائمة

StackOverflow https://stackoverflow.com/questions/172935

  •  05-07-2019
  •  | 
  •  

سؤال

وبعد فهم (الاقتباس)، أنا الغريب عن كيفية واحد قد يتسبب في تصريح لتنفيذه. كانت فكرتي الأولى

(defvar x '(+ 2 21))
`(,@x)

ولكن أن تقيم فقط ل(+ 2 21)، أو محتويات x. كيف سيكون واحد كود التشغيل التي تم وضعها في قائمة؟

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

المحلول

و(eval '(+ 2 21))

نصائح أخرى

و @المسيحي رومو:

وBACKTICK سبيل المثال: يمكنك تطبيق كيندا تطبيق باستخدام وحدة التقييم والفاصلة العليا المائلة، لأنه يمكنك لصق الحجج إلى النموذج. لن يكون الشيء الأكثر كفاءة في العالم، ولكن:

(eval `(and ,@(loop for x from 1 upto 4 collect `(evenp ,x))))

وما يعادل

(eval '(and (evenp 1) (evenp 2) (evenp 3) (evenp 4)))

وبالمناسبة، وهذا له نفس نتيجة (أكثر كفاءة)

(every 'evenp '(1 2 3 4))

وعلى أمل أن يرضي فضولك!

ونلقي نظرة على البرنامج التعليمي ليسب مضحك في http://lisperati.com/ . هناك إصدارات لاللثغة المشتركة وإيماكس اللثغة، ويظهر استخدام quasiquote وحدات الماكرو.

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