InteLib

Description

InteLib is a library of C++ classes which lets you do Lisp programming within your C++ program even without any additional preprocessing, without all those calling conventions etc. You can write a C++ code (that is, a code which is accepted by your C++ compiler) thinking in a "Lisp mode" and the code you write will look much like Lisp code altough it will be pure C++. To give you the essential feeling, the following example is provided. (defun isomorphic (tree1 tree2) (cond ((atom tree1) (atom tree2)) ((atom tree2) NIL) (t (and (isomorphic (car tree1) (car tree2)) (isomorphic (cdr tree1) (cdr tree2)) )))) Just a Lisp function, isnt it? Now look at the following code: (L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2), (L|COND, (L|(L|ATOM, TREE1), (L|ATOM, TREE2)), (L|(L|ATOM, TREE2), NIL), (L|T, (L|AND, (L|ISOMORPHIC, (L|CAR, TREE1), (L|CAR, TREE2)), (L|ISOMORPHIC, (L|CDR, TREE1), (L|CDR, TREE2)) )))) Obviously the code is just the same, the syntax changed a bit, but its still the same. Well, do I surprise you if I say it is C++ code? If you dont believe, look at the following: // File isomorph.cpp #include "lisp/lisp.hpp" #include "lisp/lsymbol.hpp" #include "lfun_std.hpp" LSymbol ISOMORPHIC("ISOMORPHIC"); static LFunctionalSymbol< LFunctionDefun > DEFUN("DEFUN"); static LFunctionalSymbol< LFunctionCond > COND("COND"); static LFunctionalSymbol< LFunctionAtom > ATOM("ATOM"); static LFunctionalSymbol< LFunctionAnd > AND("AND"); static LFunctionalSymbol< LFunctionCar > CAR("CAR"); static LFunctionalSymbol< LFunctionCdr > CDR("CDR"); LListConstructor L; void LispInit_isomorphic() { static LSymbol TREE1("TREE1"); static LSymbol TREE2("TREE2"); //////////////////////////////////////////////// // (L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2), (L|COND, (L|(L|ATOM, TREE1), (L|ATOM, TREE2)), (L|(L|ATOM, TREE2), NIL), (L|T, (L|AND, (L|ISOMORPHIC, (L|CAR, TREE1), (L|CAR, TREE2)), (L|ISOMORPHIC, (L|CDR, TREE1), (L|CDR, TREE2)) )))).Evaluate(); // //////////////////////////////////////////////// } // end of file Well, this code is a complete C++ module and it does compile pretty well. No joke, its real. By the way, dont try to find any use I made out of the macroprocessor. No macros have ever been used by InteLib (except those for conditional compile directives). Instead, just recall that comma is an operator in C++ and can be overloaded for user-invented data types. Whats New in This Release: &middot; Some new package-related features are implemented, and the GNU readline autodetection has been fixed.. InteLib home

Intelib - Tree2 - Isomorphic - Lfunctionalsymbol - Cond - Lisp Programming - C++ - Atom - Static - Cdr - Car - Libraries - Programming

Published By:Andrey V. Stolyarov

License Type:Freeware

Date Added:22 October, 2010

Version:0.5.77

Price:Free

Downloads:2

Size:174.1 KB

Platform:Linux

What people say
- required fields
     
Related Downloads

XLObject is a clone of basic services offered by the Qt object model, redesigned around modern features of the C++ language. Signals and slots are used for communication between objects.

DateNov 2, 2010

AuthorAbdiel Janulgue

Size46.1 KB

LicenseFreeware

PriceFree

PlatformLinux

CategoryLinux Programming

libUTL++ library is an object-oriented C++ application development framework. I initially wrote it for my own use, and Ive definitely found it useful enough myself to justify the effort Ive put into it.

DateAug 23, 2010

AuthorAdam Mckee

Size0

LicenseFreeware

PriceFree

PlatformLinux

CategoryLinux Programming

Aapl is a C++ template library for generic programming. Aapl supports different generic programming paradigms by providing variations of standard data structures.

DateAug 4, 2010

AuthorAdrian Thurston

Size122.9 KB

LicenseFreeware

PriceFree

PlatformLinux

CategoryLinux Programming

Clara is a help-documentation tool for C++ or java developers. Basically she paints a diagram - a clara diagram - from a class.

DateSep 12, 2010

AuthorAlejandro Xalabarder Aulet

Size194.6 KB

LicenseFreeware

PriceFree

PlatformLinux

CategoryLinux Business

Search::Xapian is a Perl XS frontend to the Xapian C++ search library. The project is a fairly complete wrapper: most features of the Xapian library are made available for use from Perl.

DateAug 1, 2010

AuthorAlex Bowley

Size35.8 KB

LicenseFreeware

PriceFree

PlatformLinux

CategoryLinux Programming