*** Welcome to piglix ***

Picolisp

PicoLisp
PicoLisp Icon Xlarge.png
Paradigm functional, procedural, object-oriented, declarative, reflective, meta
Designed by Alexander Burger
First appeared 1988
Stable release
16.12 / December 8, 2016; 2 months ago (2016-12-08)
Typing discipline duck, dynamic, strong
Platform POSIX
License MIT, X11
Filename extensions .l
Website picolisp.com

PicoLisp is an open source Lisp dialect. It runs on Linux and other POSIX-compliant systems.

Its most prominent features are simplicity and minimalism. It is built on top of a single internal data type (cell), without giving up flexibility and expressive power. On the language level the programmer can use three different data types (numbers, symbols and lists) being represented by cells and differentiated by bits at the end of the cell.

Because the only non-atomic data type is the linked list, many interoperable functions exist that concentrate on list processing. As a result, PicoLisp programs are often more succinct - and at the same time faster - than those of other interpreted languages (see examples from Rosetta Code). Functions are free from the restrictions that would be imposed by a compiler, and can so accept arbitrary types and numbers of arguments. Macros are needed only in rare cases and are implemented using the quote function. PicoLisp breaks a tradition by dropping the lambda function seen in many other Lisps, like Common Lisp and Emacs Lisp. This is caused by the fact that the quote function is changed to return all its arguments unevaluated, not only the car of the first. This results in a more readable syntax, less run-time and no necessity to have a lambda function.

A special feature is the intrinsic CRUD functionality. Persistent symbols are first-class objects, they are loaded from database files automatically when accessed, and written back when modified. Applications are written using a class hierarchy of entities and relations. Additional features include: Prolog engine and database queries, distributed databases, inlining of C language functions and native C function calls, child process management, interprocess communication, browser GUI, and internationalization.


...
Wikipedia

...