1.
: Lisp. . , . .
: Lisp. , , .
1. .
2. , .
3. . , .
4. .
5. .
6. .
.
.
. , - .
, .. , ENTER.
, . QUOTE.
. , .
, . .
.
.
, . , . . , , .. , . , , () NIL.
, , , - , , . , , () . , , - .
NIL : , a NIL .
, . .
, , . , , .
, . , , . . .
|
|
RDS
(RDS < >)
. < > - , ( "lsp").
LISP, , ASCII.
-, :
https://www.tutorialspoint.com/execute_lisp_online.php.
:
- ;
- .
.
CAR :
(CAR ) → S- ( ).
CDR , . . , :
(CDR ) →
:
(write (car '(a b c d e f)))
(write (cdr '(a b c d e f)))
(write (cons 'a '(b c)))
(write (list 'a '(b c) '(e f)))
(write (append '(b c) '(e f) '(p q) '() '(g)))
(write (last '(a b c d (e f))))
(write (reverse '(a b c d (e f))))
:
A
(B C D E F)
(A B C)
(A (B C) (E F))
(B C E F P Q G)
((E F))
((E F) D C B A)
(cadadr '(a (c d) (e f g))) → d
cadadr = car cdr car cdr.
CONS.
CONS .
(CONS )
CONS , . CONS :
(CONS s- ) →
(write (cons 'a '(b c)))
(write (cons 'ab 'cd))
(write (cons NIL '(a b c)))
(write (cons '(a b c) NIL))
(write (cons 1 nil))
(write (cons 1 (cons 2 nil)))
(write (cons 1 (cons 2 (cons 3 nil))))
(write (cons 'a (cons 'b (cons 'c nil))))
(write (car (cons 'a (cons 'b (cons 'c nil)))))
(write (cdr (cons 'a (cons 'b (cons 'c nil)))))
:
(A B C)(AB. CD)(NIL A B C)((A B C))(1)(1 2)(1 2 3)(A B C)A(B C)
CAR CDR
CAR CDR , . CAR CDR :
(C...R )
D ( CAR CDR ). CAR CDR.
LIST - . . .
|
|
(write (list 1 2))(write (list 'a 'b))(write (list 1 nil))(write (list 1 2 3))(write (list 'a 'b 'c))(write (list 3 4 'a (car '(b. c)) (* 4 -2)))(write (list (list 'a 'b) (list 'c 'd 'e))) (1 2)(A B)(1 NIL)(1 2 3)(A B C)(3 4 A B -8)((A B) (C D E))
1. CAR CDR, . C...R.
) (1 2 3 4)
) (1 2 3 4)
) ((1) (2 3) ( 4))
) ((1) ((2 ) (4)))
) ((1) ((2 3 4)))
) (1 (2 ((3 4(5 (6 ))))))
2. :
(ATOM (CAR (QUOTE ((1 2) 3 4))));
(NULL (CDDR (QUOTE ((5 6) (7 8)))));
(EQUAL (CAR (QUOTE ((7)))) (CDR (QUOTE (5 7))));
(ZEROP (CADDDR (QUOTE (3 2 1 0))));
3.
4. :
) 3.234*(45.6+2.43)
) 55+21.3+1.54*2.5432-32
) (34-21.5676-43)/(342+32*4.1)
5. :
)(+2 (*3 5))
) (+2(*3 5))
) (+ 2 ( * 3 5))
) (+ 2 (* 3 5))
) (quote quote)
(quote 6)