Intelib.

مكتبة فئات C ++ التي تتيح لك القيام برمجة LISP ضمن برنامج C ++ الخاص بك
التحميل الان

Intelib. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • GPL
  • السعر:
  • FREE
  • اسم الناشر:
  • Andrey V. Stolyarov
  • موقع ويب الناشر:
  • http://www.intelib.org/

Intelib. العلامات


Intelib. وصف

مكتبة فئات C ++ التي تتيح لك القيام برمجة LISP داخل برنامج C ++ الخاص بك INTELIB هي مكتبة من فئات C ++ التي تتيح لك القيام برمجة LISP ضمن برنامج C ++ الخاص بك حتى دون أي معالجة إضافية إضافية، دون أن تتمكن من كتابة جميع تلك الاتفاقيات المتصلحة إلخ. يمكنك كتابة كود C ++ (أي رمز مقبول من برامج التحويل البرمجي C ++ الخاص بك) التفكير في "وضع LISP" والرمز الذي تكتبه سيبدو تماما مثل رمز LISP Altough، وسوف يكون نقيا C ++. لتعطيك الشعور الأساسي، يتم توفير المثال التالي. (Defun Isomorphic (Tree1 Tree2) (Cond (Atom Tree1) (Atom Tree2)) (((Atom Tree2) Nil) (T (و (and (isomorphic (car tree1) (car tree2)) (isomorphic (cdr tree1) (cdr tree2)))))) فقط وظيفة Lisp، isn تي؟ الآن إلقاء نظرة على الكود التالي: (L Defun، Isomorphic، (L Tree1، Tree2)، (L Cond، (L (L | Atom، Tree1)، (L | Atom، Tree2))، (L | (L | Atom، Tree2)، Nil)، (L | T، (L،، (L ISOMORPHIC، (L، TARK، TREE1)، (L Car، Tree2))، (L | Isomorphic، (L | CDR، Tree1)، (L | CDR، Tree2)))) من الواضح أن القانون هو نفسه فقط، لقد تغير بناء الجملة قليلا، لكنه لا يزال هو نفسه. حسنا، هل مفاجأة لك إذا قلت ذلك هو رمز C ++؟ إذا كنت لا تصدق، نلقي نظرة على ما يلي: // الملف Isomorph.cpp #include "Lisp / Lisp.hpp" #include "Lisp / lsymbol.hpp" #include "LFUN_STD.HPP" LSYMBOL ISOMORPHIC ("Isomorphic") ؛ Satic Lfunctionalsymbol defun ("defun")؛ Satic Lfunctionalsymbol cond ("cond")؛ Satic Lfunctionalsymbol ذرة ("Atom")؛ Satic Lfunctionalsymbol و ("و")؛ Satic Lfunctionalsysymbol سيارة ("سيارة")؛ Satic Lfunctionalsymbol CDR ("CDR")؛ llistconstructor l؛ الفراغ lispinit_isomorphic () {static lsymbol tree1 (tree1 ")؛ ثابت lsymbol Tree2 ("Tree2")؛ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// (L | Defun، Isomorphic، (L Tree1، Tree2)، (L Cond، (L | Atom، Tree1)، (L | Atom، Tree2))، (L | (L | Atom، Tree2) ، NIL)، (L | T، (L،،، (L | Isomorphic، (L | سيارة، Tree1)، (L | السيارة، Tree2))، (L | Isomorphic، (L | CDR، Tree1)، ( L | CDR، Tree2)))))). تقييم ()؛ // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } // نهاية FileWell، هذا الرمز هو وحدة كاملة C ++ وتجميعها بشكل جيد للغاية. لا مزحة، إنها حقيقية في الطريق، لا تحاول العثور على أي استخدام قمت بها من Macroprocessor. لم يتم استخدام وحدات ماكرو من قبل Intelib من أي وقت مضى (باستثناء تلك الخاصة بتوجيهات الترجمة الشرطية). بدلا من ذلك، يتذكر فقط أن الفاصلة هي مشغل في C ++ ويمكن تحميل أنواع البيانات التي اخترعها المستخدم. ما الجديد في هذا الإصدار: يتضمن الإصدار تنفيذ نموذج الحساب المخصص إعادة صياغة بشكل كبير بواسطة إيغور برونشتاين (شكرا إيغور!). يبدو أن هذا التنفيذ أسرع بشكل ملحوظ من واحد موجود سابقا.


Intelib. برامج ذات صلة

libzdt.

libzdt هي مكتبة عامة مجانية تهدف إلى أي شخص يريد استخدامه. ...

115

تحميل