TwinLisp FAQ

What is TwinLisp?

In one sentence, TwinLisp is a language with C/Java - like syntax and Common Lisp's concepts, internals and powers.

TwinLisp (TL) is implemented as a translator on top of Common Lisp (CL) runtime, plus some libraries. TL translates code into CL expressions, which are executed by an underlying CL machine.

Can s-expressions be used in TwinLisp?

Yes. TwinLisp allows you to freely mix s-expressions with usual TwinLisp statements.

Can Common Lisp code be used with TwinLisp?

Yes. Common Lisp code can inserted into TwinLisp code, and TwinLisp code can inserted into Common Lisp code, as well. One should use #t{ and #t} for this.

Does TwinLisp have true macros?

Yes. TwinLisp uses an analog of Common Lisp's quote and backquote syntax to write macros. It turns out that s-expressions are not vital for ease of macro-writting, but quote/backquote syntax is.

Will existing lisp infrastructure be useful with TwinLisp?

TwinLisp has been developed so that any existing lisp code and/or skills are 100% relevant. You may start to use TL alongside with CL, even mixing the two in the same file. Developer's with C/Java/Python background can now quickly start writting code for lisp machine, while getting used to things like macros, etc. Lisp developers may use either TL or CL -- there is no technical difference.

Can TwinLisp be used in production today?

Yes. In fact, the first major application written in TwinLisp is TwinLisp itself. TL layer and libraries are rigorously tested with automated tests. Any of existing high quality ANSI compliant lisp machines can be used with TwinLisp on top.

Copyright (c) 2006 Mikalai Birukou.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Valid XHTML 1.1! Valid CSS!