{{language |exec=interpreted |checking=dynamic |gc=yes |site=http://home.picolisp.com}} {{implementation|Lisp}} [[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]].

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.

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.

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

$ pil +

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

  • [http://software-lab.de/doc/ref.html Reference Manual]
  • [http://software-lab.de/doc/faq.html Frequently asked questions]

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