Category:PicoLisp: Difference between revisions

Content added Content deleted
m (Tagged as a Lisp)
(Todo)
Line 7: Line 7:
[[Category:Lisp Implementations]]
[[Category:Lisp Implementations]]


'''PicoLisp''' is a small and fast interpreted [[Lisp]] dialect. It runs on [[Linux]] and other [[POSIX]]-compliant systems, and - in a reduced version - on [[JVM]].
'''PicoLisp''' is a small and fast interpreted [[Lisp]] dialect.
It runs on [[Linux]] and other [[POSIX]]-compliant systems, and - in a reduced version - on [[JVM]].


Its most prominent feature is "simplicity". It is built on top of a single internal data type (the cell), without giving up flexibility and expressive power. On the language level, it supports just three data types (numbers, symbols and lists), constructed from internal cells.
Its most prominent feature is "simplicity". It is built on top of a single internal data type (the cell), without giving up flexibility and expressive power.
On the language level, it supports just three data types (numbers, symbols and lists), constructed from internal cells.


PicoLisp programs are often more succinct - and at the same time faster - than those of other interpreted languages. A special feature is the intrinsic database functionality: Persistent symbols are first-class objects, and applications are written using a class hierarchy of entities and relations.
PicoLisp programs are often more succinct - and at the same time faster - than those of other interpreted languages.
A special feature is the intrinsic database functionality: Persistent symbols are first-class objects, and applications are written using a class hierarchy of entities and relations.


Other features include a [[Prolog]] engine for logic programming and database queries, distributed databases, inlining of [[C]]/asm functions and native C/asm function calls, child process management, interprocess communication, Browser GUI, Internationalization and localization.
Other features include a [[Prolog]] engine for logic programming and database queries, distributed databases, inlining of [[C]]/asm functions and native C/asm function calls, child process management, interprocess communication, Browser GUI, Internationalization and localization.
Line 17: Line 20:
To try the RosettaCode tasks, download [http://software-lab.de/picoLisp.tgz picoLisp.tgz], unpack it, and follow the instructions in README and INSTALL. Unless stated otherwise, the examples assume that the interpreter was started with the command <lang bash>$ pil +
To try the RosettaCode tasks, download [http://software-lab.de/picoLisp.tgz picoLisp.tgz], unpack it, and follow the instructions in README and INSTALL. Unless stated otherwise, the examples assume that the interpreter was started with the command <lang bash>$ pil +
: </lang>
: </lang>
(i.e. with a '+' for "debug mode", as recommended in the documentation. Note: Do not call just the 'picolisp' binary, this is only the bare kernel of PicoLisp)
(i.e. with a '+' for "debug mode", as recommended in the documentation.
Note: Do not call just the 'picolisp' binary, this is only the bare kernel of PicoLisp)


==See Also==
==See Also==
* [http://software-lab.de/doc/ref.html Reference Manual]
* [http://software-lab.de/doc/ref.html Reference Manual]
* [http://software-lab.de/doc/faq.html Frequently asked questions]
* [http://software-lab.de/doc/faq.html Frequently asked questions]

==Todo==
[[Reports:Tasks_not_implemented_in_PicoLisp]]