• Home
  • Most Popular
  • Submit
  • About Us
  • Contact Us

Softpile

Free Downloads

Categories
  • Home
  • Most Popular
  • Communications
  • Desktop
  • Games & Entertainment
  • Graphic Apps
  • Network & Internet
  • Security & Privacy
  • System Utilities
Alternative to itextsharp 2022.11.10347
IronPDF offers an itextsharp alternative for HTML to PDF conversion with C# code examples, documentation, and ...
VShell Server for Linux and Mac 4.8
VShell is a versatile and secure file transfer server that supports multiple protocols and is compatible ...
PDF Studio PDF Editor for Linux 2022
PDF Studio is a cost-effective PDF editor that delivers full compatibility with the PDF Standard. It's ...
VQ Probe for Linux 1.5
VQ Probe is a comprehensive software tool that enables objective and subjective video quality analysis. The ...
Resilient Server 2.3
This Debian GNU/Linux (Buster) based software has a customized partitioning scheme that enhances robustness against filesystem ...
Valentina Studio for Linux 9.6
Valentina Studio is a cross-platform GUI manager for Mac, Windows, and Linux. It allows users to ...
VPN Lifeguard for Linux 1.0.58
The software monitors VPN connection and automatically terminates apps during connection loss, re-establishes the connection and ...
G_Viewer 0.84
G_Viewer is a Linux software that serves as both a file system and photo/image viewer. It ...
Checksome File Hash Tool for Linux 1.1
This software allows for the generation and verification of file hashes. It is a quick and ...
KeyWrangler Password Manager for Linux 1.2
A password management software that is secure, offline and extensible. It offers military-grade encryption to protect ...
Home Linux InteLib Download

InteLib

October 18, 2009
C++Lisp is a library of C++ classes that allows for integrating Lisp programming within C++ programs. It provides an easy way to use Lisp functions and expressions within C++ code for efficient programming.
Version 0.6.21
License GPL
Platform Linux
Supported Languages English
Homepage www.intelib.org
Developed by Andrey V. Stolyarov
InteLib is a powerful tool that offers a library of C++ classes for Lisp programming. With this software, you can write C++ code in "Lisp mode" without needing any additional preprocessing or calling conventions. This means that your C++ code will look like Lisp code and will be pure C++.

To illustrate this, the software provides an example Lisp function called "isomorphic". The code for this function is shown below in Lisp syntax:

(defun isomorphic (tree1 tree2)
(cond ((atom tree1) (atom tree2))
((atom tree2) NIL)
(t (and (isomorphic (car tree1)
(car tree2))
(isomorphic (cdr tree1)
(cdr tree2))))))

Now, the same code is shown using InteLib's C++ syntax:

(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))))))

It may surprise you to know that the above code is actually C++ code. To prove this, the following code is shown:

// 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();
}

This code can be compiled with a C++ compiler and demonstrates that InteLib's C++ syntax is legitimate.

One noteworthy aspect of InteLib is that it doesn't rely on macros except for conditional compile directives. Instead, the software uses the comma operator which can be overloaded for user-defined data types. Overall, InteLib is a useful and innovative tool for C++ programmers who want to write
What's New

Version 0.6.21: N/A

Free Download 355K
362
  • Share on:

Most Popular

  1. Quicksilver Forums 1.4.2
    154
  2. Dvgrab 3.4
    102
  3. DynVPN 1.0
    89
  4. CherryTV 0.1
    81
  5. SlideMap 1.2.2
    80
  6. porm r2
    73
  7. Clewarecontrol 0.8
    72
  8. Java Games 1.0
    72
  9. Swiftfox 3.0b5pre-2
    71
  10. fuseftp 0.8
    71

Related Downloads

php-sqlite3
The PHP extension php-sqlite3 allows you to conveniently access SQLite3 databases in ...
PHP 2 Do
PHP 2 Do is a basic, no-nonsense to-do list software.
django-live
Django-live is a software that resembles Humanclick and LivePHP, with the added ...
Gluid
This software acts as a compact interface for Fluidsynth, a digital synthesizer. ...
load-plugins
Load-plugins delivers two plugins for Kicker: CPULoad and MemoryLoad, allowing users to ...
Zenwalk GNOME
This is an open-source operating system based on the Unix platform. It ...
ELX Power Desktop
ELX Linux aims to offer a user-friendly interface similar to Windows.
CapiSuite
CapiSuite is an ISDN communication software that simplifies telecommunication processes. It offers ...
ctypes-opencv
This is a Python module that serves as a wrapper for OpenCV ...
Network-Accounting Daemon for Netfilter
Ulog-acctd is a network accounting daemon that creates log files of network ...
Copyright © 1999-2025 Softpile Free Downloads
  • Most Popular
  • Submit
  • About Us
  • Contact Us
  • Privacy Policy
  • Disclaimer
  • Terms of Use

Can we use your data to tailor ads for you?

Our partners will collect data and use cookies for ad personalization and measurement.

By choosing "I agree", closing this pop-up or clicking on any element on the page, you agree to the use of cookies to help us provide you with a better user experience.

Learn how Softpile and our partners collect and use data.

You can change your choice at any time in our privacy center.

Cookie Settings

Our website stores four types of cookies. At any time you can choose which cookies you accept and which you refuse. You can read more about what cookies are and what types of cookies we store in our Cookie Policy.

are necessary for technical reasons. Without them, this website may not function properly.

are necessary for specific functionality on the website. Without them, some features may be disabled.

allow us to analyse website use and to improve the visitor's experience.

allow us to personalise your experience and to send you relevant content and offers, on this website and other websites.