تنفيذ التعليمات البرمجية المخزنة على شكل قائمة
-
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 وحدات الماكرو.
لا تنتمي إلى StackOverflow