Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revisionBoth sides next revision
doc:package:why_lisp [2015/05/08 16:18] – created gkazhoyadoc:package:why_lisp [2015/05/08 16:22] gkazhoya
Line 4: Line 4:
  
 == Macros == == Macros ==
-Due to its powerful macros mechanism Lisp is known to be good for implementing other domain-specific languages. This characteristic was extensively used during the implementation of CRAM: a new reactive planning language CPL (CRAM Plan Language) was developed for CRAM. It is used for programming cognition-enabled control systems and is based on [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.7438&rep=rep1&type=pdf|RPL]].+Due to its powerful macro mechanism Lisp is known to be good for implementing domain-specific programming languages. This characteristic was extensively used during the implementation of CRAM: a new reactive planning language CPL (CRAM Plan Language) was developed for CRAM. It is used for programming cognition-enabled control systems and is based on [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.7438&rep=rep1&type=pdf|RPL]].
  
 == Code as first-class object == == Code as first-class object ==
-In Lisp, code is represented using standard data types. Thus, code can be assigned to a variable, code that was generated on the fly can be executed straight away, e.g., generated at run-time, using the powerful macros mechanism custom code can also be generated at compile time, and as any other data object code can be easily modified. That enables for automatic generation and transformation of robot plans.+In Lisp, code is represented using standard data types (it is, basically, a List). Thus, code can be assigned to a variable, it can be generated at run-time, i.e., code that was generated on the fly can be executed straight away, using the powerful macros mechanism custom code can also be generated at compile time, and as any other data object code can also be easily modified by other code. That enables for automatic generation and transformation of robot plans.
  
 == Symbols as first-class object == == Symbols as first-class object ==