macros - مشكلة - ما هي وحدات الماكرو




ما هي مزايا وحدات الماكرو المخطط؟ (2)

لماذا يفضل أي شخص وحدات الماكرو على وحدات الماكرو ليسب المشتركة (وأنا حقا تريد أن تعرف أيضا، وأنا لا تحاول أن تكون القزم)؟

تجربتي كما ليسب الجديد هو أن وحدات الماكرو نمط ليسب المشتركة هي أسهل بكثير للتعلم من وحدات الماكرو المخطط. لم أرى حتى الآن أية مزايا لوحدات الماكرو في المخطط، ولكن بالطبع لا يعني ذلك أنها غير موجودة.

وأنا أعلم أن وحدات الماكرو هي "هجنيك"، ولكن ما زلت غير مقتنع أن هذا يستحق التعقيد إضافية. من ناحية أخرى على الرغم من ذلك، هناك من الواضح أن الناس الذين هم على اقتناع بأن هذا أمر ضروري، وإلا لن يكون هناك تنفيذ وحدات الماكرو خطة في ليسب المشتركة.

لجعل قصة قصيرة قصيرة، يمكن للشخص الدفاع عن وحدات الماكرو مخطط لي؟


وحدات الماكرو خطة إدخال اثنين، متعامدة أساسا، المفاهيم: النظافة ونمط مطابقة. النظافة هي أقل أهمية في lisp2 مثل ليسب المشتركة. نمط مطابقة اللغة يلتقط العديد من التعابير الكلية المشتركة، ولكن لديه مشكلة أنه هو في الأساس لغة مختلفة من المخطط. ربما أفضل مقدمة لوحدات الماكرو في المخطط، جنبا إلى جنب مع بعض المبررات وراءها هو شريرام كريشنامورثي في ​​الفصلين 36 و 37.

وأظن أن السبب الناس يكتبون نمط نظم الماكرو نمط في ليسب المشترك هو أكثر لمطابقة نمط من للنظافة.


لأنهم يستخدمون لغة مختلفة غير مخطط، وحدات الماكرو مخطط أقل قوة من وحدات الماكرو المشتركة ليسب بالمعنى شبه الرسمي: يمكنك أن تفعل التعسفي تجميع الوقت حساب معهم، لكنها مشعر وملتوية. انها الكثير مثل حجة لعدم استخدام set! : set! أقل قوة set! لغات حرة تنتج أقل رمز عربات التي تجرها الدواب في مقابل التعامل مع حرج للدولة. في أي وقت تتداول فيه السلطة للانضباط، فإنك تراهن على أنك ستتمكن من بناء أنظمة أكثر تعقيدا على المدى الطويل.

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

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