home *** CD-ROM | disk | FTP | other *** search
-
- [DEMO.REC]
- [collection of LISP demonstration programs]
- [December 31, 1980]
- [December 28, 1983]
-
- [[]]
-
- {
- [cr,lf] (2573TL;)&
- [console input] (R13%='';T08%(=2080[sp,bs]TL)(@#|;L@#;);)#
- [logon message] ('
- A collection of LISP demonstration programs:
- (merge (1 2 3) (a b c)) produces (1 a 2 b 3 c)
- (reverse (1 2 3 4 5)) produces (5 4 3 2 1)
- (split (1 a 2 b 3 c)) produces ((1 2 3) (a b c))
- (split* (1 a 2 b 3 c)) produces the same result
- (binsum (1 1 1 0) (1 1)) produces (1 0 0 0 1)
- To execute one of these programs, type its name, then
- a carriage return. Then type its arguments, in response
- to the prompts.
- 'TL@&;)!
- [bal paren] (A')'E;'('E@+::)+
- [next element] (A'('E@+JA;j' 'U;')'U;)-
- [enclose in quotes] (JZD39%II39%IJQ;)%
- [car] (JZDI@-Q;)1
- [cdr] (JZDI@-D(' 'ED;;)JZQ;)2
- [cons] (JZD('()'='('II')'I;IAjI' 'I;)JZQ;)3
- [atom] (JZDI'('E'F';'T';)4
- [eq] (='T';L'F';)5
- [null] ('()'='T';L'F';)6
- [read] (@&'read> 'TL(@#;:);)7
- [print] (@&' 'TLT;)8
- [append] (JZDIjIzABBD' 'IJZQ;)9
- [not] ('T'='F';'F'='T';;)0
-
- [calculate a binary sum - use reversed digits]
- (1$rmml1$S0$rmml0$S0$ryG'()'@r1$ryG'()'@r@c'()'@rnLn0$SnLn1$S ;)b
-
-
- [binary sum - sum low order bits, then rest]
- (1$rmml1$S0$rmml0$S(0$ryG@6'T'=1$ryG;L1$ryG@6'T'=0$ryG;L'T''T'=0$ryG@11$ryG@1@d0$ryG@11$ryG@1@e'()'@30$ryG@21$ryG@2@c@c@3;L;)nLn0$SnLn1$S ;)c
-
-
- [sum of two bits]
- (1$rmml1$S0$rmml0$S(0$ryG"0"@5'T'=1$ryG;L1$ryG"0"@5'T'=0$ryG;L'T''T'="0";L;)nLn0$SnLn1$S ;)d
-
-
- [carry bit]
- (1$rmml1$S0$rmml0$S(0$ryG"0"@5'T'="0";L1$ryG"0"@5'T'="0";L'T''T'="1";L;)nLn0$SnLn1$S ;)e
-
-
- [make a list of two elements]
- (1$rmml1$S0$rmml0$S0$ryG1$ryG"()"@3@3nLn0$SnLn1$S ;)l
-
-
- [merge two lists]
- (1$rmml1$S0$rmml0$S(0$ryG@6'T'=1$ryG;L(1$ryG@6'T'=0$ryG;L0$ryG@11$ryG@10$ryG@21$ryG@2@m@3@3;);)nLn0$SnLn1$S ;)m
-
-
- [reverse a list]
- (1$rmml1$S0$rmml0$S(0$ryG"()"@5'T'=1$ryG;L0$ryG@20$ryG@11$ryG@3@r;)nLn0$SnLn1$S ;)r
-
-
- [split a list into odds and evens]
- (2$rmml2$S1$rmml1$S0$rmml0$S(0$ryG@6'T'=1$ryG2$ryG@l;L(0$ryG@2@6'T'=0$ryG@11$ryG@32$ryG@l;L0$ryG@2@20$ryG@11$ryG@30$ryG@2@12$ryG@3@s;);)nLn0$SnLn1$SnLn2$S ;)s
-
-
- [split a list into odds and evens - variant]
- (0$rmml0$S(0$ryG@6'T'=0$ryG0$ryG@l;L(0$ryG@2@6'T'=0$ryG"()"@l;L0$ryG@2@2@t1$rmml1$S0$ryG@11$ryG@1@30$ryG@2@11$ryG@2@1@3@lnLn1$S;);)nLn0$S ;)t
-
-
- [main program]
- (0$rmml0$S(0$ryG"merge"@5'T'=@7@7@m;L(0$ryG"reverse"@5'T'=@7"()"@r;L(0$ryG"split"@5'T'=@7"()""()"@s;L(0$ryG"split*"@5'T'=@7@t;L(0$ryG"binsum"@5'T'=@7@7@b;L"(wrong option)";););););)nLn0$S ;)*
-
- (@!@7@*@8;;)}
-
- [end]
-