Luciffi fixes
[lucifer.git] / README-LANCER
blob874b9e591fb910d4b3b6fa42865b74332e633f2f
1 LUCIFER-LANCER is a small experimental library which enables the following syntax:
2    ([ form ][ method arg0 arg1 ... ])
4 Maybe this form fits our thinking habit better (in fact, most natural languages
5 use the form [SUBJECT verb OBJECT] or [SUBJECT OBJECT verb]). Very few natural language
6 used [Verb SUBJECT OBJECT], (which seems to be suggested by CLOS ?) 
7 Using this library, you can just use this additional syntax... WITHIN your usual code.
8 Every such form expands into a call, so just use it like a normal form.
10 To use it, just take the following instruction:
11  1.  (require 'lucifer-lancer)
12  2a. call (lancer:add-lancer-class-methods <class-name>
13             <method-name1> <method-function1>
14                         <method-name2> <method-function2> ... )
15          to register the methods or functions you want to use.
16             - OR -
17  2b. Use (define-lancer-method (<class-name> <method-name>)
18                         <normal-method-name> <args> <body>)
19          when you define the method.
20          The two ways are essentially the same.
21  3.  write (lancer:enable-lancer-syntax) and
22         (lancer:disable-lancer-syntax), and anything else you want between them.
23         For example ([foo ][ mthd foo2 ]) equals
24         (foo-metd foo foo2) .
25         
26         Notice "mthd" and "foo-metd" are not essentially the same.  And you should keep ][
27         and ]) away from neighboring words (this is because i don't want to keep you from
28         using those characters within your symbol names in your program).
30 Enjoy~