Լ α׷

 

α׷ : Robert W. Sebesta , .ϻȣ , ȫǻ, 1999 ( : Concepts of Programming Languages, 4th ed), Page 659~700

 

1.

2. Լ

     (1) ܼ Լ

     (2) Լ

3. Լ α׷

4. ù Լ α׷ : LISP

     (1) Ÿ԰

     (2) ù LISP

5. Scheme Ұ

     (1) Scheme

     (2) Լ

     (3) Լ ϴ Լ

     (4) 帧

     (5) Scheme Լ

     (6) Լ

     (7) ڵ带 ϴ Լ

     (8) Scheme Ư¡ 

6. COMMON LISP

7. ML

8. Haskell

9. Լ

10. Լ

 

Լ α׷ְ Ʈ ߿ Լ α׷ ϱ α׷  ҰѴ. Լ ʸ ξ , Church Լ ȣ Ͽ Լ ⺻ ϸ鼭 Ѵ. , Լ ǿ Ϲ Լ ¸ Ѵ. , Լ α׷ Ұϰ, ̾ ù° Լ LISP LISP Ʈ ȣ Լ ҰѴ. ణ Scheme Ұϰ ⺻ Լ, Ư , Լ (functional form), Scheme ۼ Լ Եȴ. ׷ , Scheme Ư¡ Ѵ. Լ α׷ ٸ (Scheme ٸ) ̱ COMMON LISP, ML, Haskell ҰѴ. Լ α׷ Ѵ. , Լ  ϰ Ѵ.

1.

å ó 13 ַ ü  ̾. Smalltalk ϰ 츮 ü ¸ ´. η ù° ̴.

̿ 缺 κδ ׵ von Neumann (1 忡 ) Ѵ. ѰϿ ⺻ (FORTRAN I) Ű ִ.  von Neumann ǻ ȿ ̿ϱ Ǿ. Ÿ α׷ κ α׷ӿ ؼ ޾Ƶ̴ ˷, ⺻ ģ Ʈ ߰ ʿ ǰ ִ.

迡 ٸ ϸ, ̵ Ư ǻ ȿ ຸٴ Ư α׷ з̳ п ̴. ׷ ݱ, ̵  ۼ α׷ ϴ ־ ȿ Ұ ̵ ó Ǵ Ҵ.

Լ Լ α׷ з ߿ Ÿ ϳ ̴. ̷ Ÿ α׷ Լ α׷  ؼ ȴ.

LISP Լ ۵, ȿ Ų ߿ Ư¡ ߴ. LISP ,  ϰ Ǵ ǹ̿, Լ ߿ ̴. Scheme ۰, - Ģ ϴ LISP Ļ̴. COMMON LISP LISP 1980 ʹ Ļ ȥ̴. ML LISP Scheme Ÿ Լ ̴. Haskell κ ML ʸ ΰ Լ ̴.

Լ α׷ Ұϴ , Լ α׷ ƴϴ. Լ α׷ ġ ϱ  Ǵ ̴. 츮 Լ Լ α׷ Լ α׷ Ÿ ϱ Լ Scheme κ ҰѴ. ڰ ִ α׷ ۼϵ Scheme ڷᰡ ԵǾ. α׷ Լ α׷ ƴ. ̰ ȴ.

2. Լ

Լ ǿ (domain set) ̶ Ҹ Ҹ ġ (range set) ̶ Ҹ (mapping) ̴. Լ Ǵ Բ Ȥ ǿ ġ Ѵ. ǥ Ǵ  쿡 ̺ ȴ. Լ ǿ Ư ҿ ȴ. ǿ ϶. Լ ġ Ҹ Ǵ ȯѴ.

Լ ⺻ Ư ϳ ǥ α׷  Ϲ ݺٴ Ϳ ǽ ȴٴ ̴.

Լ ٸ ߿ Ư ۿ (side effect) , ־ ׻ Ѵٴ ̴. α׷ ۿ ޸ Ҹ ϴ ȴ. Լ ϱ ޸𸮿 ִ ϱ Ѵ. ǹ . ۿ .

(1) ܼ Լ

Լ Ǵ Լ ̸, ȣ ۼ Ű Ʈ, ǥ ۼȴ. ,

ǿ ǿ ġ Ǽ̴. ȣ " ǵȴ" ǹѴ. Ű x ǿ Ҹ Ÿ, Լ ϴ Ư Ҹ Ÿ ȴ. ̰ Լ Ű ٸ ̴.

Լ Լ ̸ ǿ Ư ҿ ν õȴ. ġ Ҵ Ű ǿ ҷ ġȯ Լ ν ´. , cube (2.0) 8.0 Ѵ. ٽ ѹ, Լ ε ȵ Ű ٴ (ε Ű Ư ̸̴) ϴ ߿ϴ. Ű ǿ ҿ εǰ 򰡵 ȴ.

Լ ʱ ̷ Լ ϴ ۾ Լ ϴ ۾ иߴ. Alonzo Church (Church, 1941) ȣ (̸ ) Լ ϴ Ѵ. ٽ (lambda expression) Ű Լ Ѵ. ٽ Լ ü̴. , .

տ Ѵ, Ű ǿ Ҹ Ÿ, 򰡵 Ű Ư ҿ εȴ. ٽ ־ Ű 򰡵 , Ű ȴٰ Ѵ. ׷ Լ 򰡿 ϴ. ٽ ó Ÿ.

8 ̴.

ٸ Լ ǿ ٽ ̻ Ű ִ.

(2) Լ

Լ Ǵ Լ (functional form) Ű Լ ϰų Լ ϴ (Ǵ ) Լ̴. Ϲ Լ ´ ռ Լ (function composition) ̴. ռԼ Լ Ű Ͽ ι° Ű Լ ù° Ű Լ Լ Ѵ. ռ Լ o ڷ Ͽ ۼѴ.

,

(construction) Ű Լ Ʈ ϴ Լ ̴. ڿ , ڴ Լ Ű ڿ Ͽ Ʈ Ǵ Ѵ. ڴ [f, g] ó Լ ȣ (bracket) ȿ μ ǥõȴ. .

, [g, h, i] (4) (16, 8, 2) Ѵ.

- (apply-to-all) ڴ Űμ Լ ϴ Լ ̴. Ʈ ߴٸ, - ڴ Ʈ ִ Լ Ű Ͽ Ʈ Ѵ. - ڴ Ÿ. .

(h, (2, 3, 4)) (4, 9, 16) Ѵ.

ٸ Լ ° , ׵ Ư ϰ ִ.

3. Լ α׷

Լ α׷ Լ ڴ ̴. ̰ ذῡ  ⺻ ٸ ȴ.  ǥ 򰡵ǰ ޸ - α׷ ǥõȴ - ȴ. ޸ ̷ ʿ α׷ п ȴ. α׷ ǥ κ ؾ Ѵ. ,  ϱ

(x + y) ȴ. ׷ (a - b) 򰡵Ǵ Ǿ Ѵ. ȭϱ Ͽ, Ϸ ޾ ִ ǥ ߰ Ҹ óѴ. ߰ Ҵ 䱸, λ α׷ӿ ȴ.

Լ α׷ ʴ´. ̰ α׷ Ǵ ǻ ޸ κ α׷Ӹ Ӱ Ѵ. ݺ Ұϴ. ֳϸ, ݺ DZ ̴. ݺ ݺ ƴ϶ ͷ Ǿ Ѵ. α׷ Լ ǿ Լ ̰, Լ ϴ ̷. Լ α׷ ǹ̷а ǥ ǹ̷ ǹ̿ ¸ ʴ´. Լ Ű ־ٸ ׻ ϴ. ̰ (referential transparency) ̶ Ѵ. Լ ǹ̷ Ư¡ ϴ Լ ǹ̺ ξ ϴ.

Լ Լ , Լκ Լ ϴ Լ , Լ , ͸ Ÿ Ѵ. Ű Լ ؼ Ǵ Ÿ ؼ ȴ. ǵ Լ Լ 䱸Ѵ. Լ ͷ , ϵ ִ.

Ϲ Լ α׷ ѵ Ѵ. , κ  Լ ǿ ġ Ѵ. Լ α׷ ϱ  ϴ ɰ Լ ȯǴ ŸԿ ´ٴ ̴. FORTRAN Pascal  Į ŸԸ ȯ ִ. ߿ , Լ ȯ ٴ ̴. ׷ ִ Լ Ѵ. Լ ٸ ɰ Լ ۿ (functional side effect) ɼ̴.

4. ù Լ α׷ : LISP

Լ α׷  ߵǾ. ǰ ϰ Ǵ LISP ̴. LISP Լ  ϴ FORTRAN Ͽ  ϴ Ͱ ణ ϴ. LISP ù° Լ , Ϻ LISP 30 Ǿ, װ Լ ֱ Ÿ ʴ´ٰ ϴ´. , ó ϰ, LISP Ļ -Ÿ , , ݺ Ư¡ Ѵ ( α׷ ൿ ִ ޸ ϱ ȴ). ̰Ͱ ణ ̻ ӿ ұϰ, LISP ļ Լ α׷ ⺻ Ÿ Ƿ ġ ִ.

(1) Ÿ԰

LISP Ÿ ü- (atom) Ʈ - ִ. ׵  Ÿ ǹ̿ Ÿ ƴϴ. ǻ, LISP Ÿ . ĺ ¸ ڴ LISP ȣ̴. ġ ڶ ȴ.

Ʈ Ʈ ó ־ ʿ κ̶ DZ LISP Ʈ 2 κ ȸ϶. ׷ ᱹ ߵ ó, LISP ԰ 䱸 ʴ´. Ʈ Ұȣ (parentheses) ȿ Ҹ ν Ѵ. Ʈ Ҵ ڿ ѵȴ.

ߺ Ʈ ȣ õȴ. , Ʈ

4 Ҹ Ʈ̴. ù Ҵ A ̰, ι° Ҵ θƮ (B C) ̰, ° Ҵ D ̰, ׹° Ҵ ι° ҷ θƮ (F G) θƮ (E (F G)) ̴.

, Ʈ Ϲ - Ʈ Ǹ, ͸ Ҹ Ÿ. ڸ ǥ - ȣ ġ - Ű ù° ͸ ã´. Ʈ Ҹ θƮ ù 带 Ű ù ͸ ´. 쿡, ι° ʹ ù 带 Ű ù ͸ ´. 쿡, ι° ʹ Ʈ Ҹ Ų. Ʈ ù Ҹ Ű ͷ ȴ.

ΰ Ʈ ǥ ׸ 1 . Ʈ Ҵ ϶. Ʈ Ҵ ڰ . ũ NIL ̴. θƮ .

׸ 1   LISP Ʈ ǥ

(2) ù LISP

ǵ FORTRAN (ʿ ߰Ͽ) LISP α׷ ȣ ̾. ȣ M-ȣ (M-notation) - Ÿ ȣ (meta-notation) - θ. M-ȣ ۼ α׷ ǹ IBM 704 ڵ α׷ ȯϴ Ϸ ־.

LISP ʱ⿡ McCarthy Ϲ ȣ ó Ʈ ó Ű ߴ. McCarthy Ʈ ó ÿ Turing 踦 Ͽ Ϲ Ǿ ̷ ϴ ִٰ Ͼ. McCarthy ȣ Ʈ ó Turing 躸 ڿ ̶ ߴ. ̷ Ϲ 䱸 ߿ ϳ Ǵ  Ư ־ Ѵٴ ̴. Turing , ٸ Turing ִ Turing 踦 ִ. κ LISP ٸ Լ ִ LISP Լ Ѵٴ Դ.

LISP Լ ù 䱸 Ͱ ǥǴ Լ ǥ ִ ȣ̴. (1) ȣӿ Ե Ʈ ȣ ̹ LISP ǥ äõǾ. , Ʈ ȣ ǥ ִ Լ ǿ Լ ȣ Ģ ϱ ߴ. Լ ȣ Cambridge Polish Ҹ Ʈ · õǾ.

, + ġ Ű ϴ Լ,

12 򰡵ȴ.

(1) ȣ Լ Ǹ ϱ õǾ. ׷ Լ ٸ Լ ڱ ڽſ ؼ ǵ ̸ Լ ε ϵ Ǿ ߴ. ̷ ̸ Լ ̸ ǥ ϴ Ʈ Ʈ ؼ õǾ.

Լ α׷ֿ ٸ, ̸ Լ ϴ ̻ϰ ϴ 𸥴. ׷ ̸ Լ Լ α׷ (пó) ϴ. , Ű Ʈ ϴ Լ ϴ Լ . Լ DZ ̸ ʿ䰡 . ׷ 5.6 ־.

ο ȣ ǥõ LISP Լ S-ǥ (S-expression) - ȣ ǥ (symbolic expression) - ̶ Ҹ. ħ, LISP (Ϳ ڵ) S-ǥ̶ Ҹ. S-ǥ Ʈ ̴. S-ǥ ܼ ǥ̶ Ѵ.

McCarthy ٸ Լ ִ Լ ߴ. Լ EVAL ̶ Ͽ ü ǥ ̴. AI Ʈ - Stephen B. Russel Daniel J. Edwards - EVAL LISP ͷ ִٴ ν߰, ׵ ﰢ ׷ ߴ (McCarthy et al., 1965)

ﰢ̰, , ġ ʴ ߿ Դ. ù°, ʱ LISP ý EVAL ߰, ׷Ƿ ̴. °, LISP ȹ α׷ ȣ M-ȣ Ǵ ϼ ʾҴ. , S-ȣ LISP ϳ ȣ Ǿ. Ϳ ڵ忡 ȣ 5.7 ߿ ´. °, ǥİ (null) ּҿ (zero) ̻ Ư¡  ϸ鼭 κ ȿ Ǿ.

и 쿬̾ ʱ LISP ý ٸ Ư¡ ̴. Լ ȣȯ濡 򰡵ȴ. ƹ ؼ ߰, Ģ ÿ ־ٴ Ϳ ȸ̾. Ģ 1975 LISP κ Ļ Ǿ. Ļ Ģ ϰų α׷ӿ Ģ Ģ ϵ Ѵ.

5. Scheme Ұ

, Scheme Ϻθ Ѵ (Dybvig, 1996). Scheme ϰ, п αⰡ ְ, Scheme ʹ پ ǻͿ 밡ϱ ⼭ õǾ. Scheme Scheme 4 ̴.

(1) Scheme

LISP Ļ Scheme 1970 ߹ݿ MIT ǥǾ (Sussman and Steele, 1975). Scheme ũ, Ģ , ϵ ü Լ ޵ ؼ Ưȭȴ. ϵ üμ, Scheme Լ ǥ Ʈ Ұ ְ, ְ, Ű ޵ ִ. LISP ʱ ̷ ɷ ʾҴ.

ǹ̷ μ Scheme Լ α׷ְ Ϲ α׷ а 뿡 ſ ϴ.

Scheme ۼ κ Լ LISP Լ ణ 䱸Ѵٴ Ϳ ϶.

(2) Լ

Scheme ̸ , , ȣ Ư ڷ ȴ. ̸ ڷ ؼ ȵȴ.

Scheme ʹ read-evaluate-write ̴. װ ݺ ڰ ۼ ǥ (Ʈ ) а, ǥ ؼϰ, ÷Ѵ. ͷ ͷ 򰡵ȴ. Ϳ ڸ ġ, ܼ ڸ ÷Ѵ. Լ ȣ ǥ 򰡵ȴ. ù°, Ű ǥ Ư 򰡵ȴ. ׷ , Լ Ű ǰ, ÷̵ȴ.

Scheme ⺻ Լ Ѵ. Լ , , , +, -, *, / ̴. * + 0 Ǵ ̻ Ű ´. * Ű ־ ʴ´ٸ, 1 ȯȴ. + Ű ־ ʴ´ٸ, 0 ȯȴ. + Ű Բ Ѵ. * Ű Բ Ѵ. / - Ǵ ̻ Ű ´. 쿡, ù Ű Ű ù Ű . ϴ. .

ǥ

42

(* 3 7)

(+ 5 7 8)

(- 5 6)

(- 15 7 2)

(- 24 (* 4 3))

42

21

20

-1

6

12

Ű ƴ϶, SQST ġ Ű ȯѴ.

Scheme Լ Scheme Լ ؼ 䱸Ǵ ƿƼ Լ EVAL ̴. EVAL Scheme Լ - Լ̵ ƴϵ - ⺻̴. װ Scheme read-evaluate-write evaluate κ óϱ ȣȴ. Լ , EVAL ־ Լ Ű Ѵ. Լ ȣ Ű Լ ȣ ( ִ ), ʿϴ. ׷  ȣ⿡, Ű Լ ƴ - ڳ Ʈ - ̴. Ű Լ ƴ и 򰡵Ǿ ȵȴ.

, Ű (ڿ Ʈ) ־ ڰ ־ Ʈ ϴ Լ ִٰ . ڳ Ʈ 򰡵Ǿ ȵȴ. ׵ ͷ ̴. Ű 򰡸 ϱ , Լ QUOTE (ȭ ܼ Ű ȯ) Ű ־. QUOTE Ѵ.

QUOTE ȣ Ϲ  Ѵ. ̰ ܼ οǴ ǥ տ ǥ (') Ŵμ ȴ. ׷Ƿ, (QUOTE (A B)) ſ '(A B) Ѵ.

ǻ α׷  ̵ Լ̵ ͸ ٷ. Ʈ Scheme ⺻ ̹Ƿ Scheme Ʈ ϴ Լ ؾ Ѵ. Ư, Ʈ Ϻθ ϴ ( ǹ̿ Ʈ ϴ)  Ʈ ϴ ؾ Ѵ. Լ ֿ Լ DZ , Scheme Լ Ѵ.

Scheme ⺻ Ʈ - CAR CDR ("could-er" Ŀ ) - ִ. CAR Լ ־ Ʈ ù Ҹ ȯѴ. CAR Ѵ.

CDR Լ CAR ŵ Ʈ ȯѴ.

CAR CDR Լ ̸ Ưϴ. ̸ IBM 704 LISP ù Ѵ. 704 ޸ ǿ ּҿ Ǿ (decrement) ּ (address) ʵ带 ´. ʵ ޸ ּҸ ־. 704 ʵ带 ϴ CAR (ּ -contents of address register) ɾ ߴ. ޸ 尡 带 ϰ ֵ Ʈ ͸ ϱ ʵ带 ϴ ڿ. Ģ Ͽ, CAR CDR ɾ ȿ Ʈ ڸ ߴ. ̸ LISP Ļ Լ ̾.

CONS ⺻ Ʈ ڴ. - ù° ڴ ڳ Ʈ, ι° ڴ ׻ Ʈ - κ Ʈ Ѵ. ù Ű ι° Ű ο CAR ϴ ̴. .

CONS ׸ 2 .  ǹ̿ CONS CAR CDR ̴ٴ Ϳ ϶. CAR CDR Ʈ иϰ CONS ־ Ʈ κκ Ʈ Ѵ. CONS Ű Ʈ CAR CDR ȴ. ׷Ƿ, lis Ʈ̸,

׵ Լ̴.

LIST Űκ Ʈ ϴ Լ. װ ó ø CONS Լ ̴.

ϴ.

׸ 2   CONS

Scheme Լ 3 ߿ Լ EQ?, NULL?, LIST? ̴. ̸ ǵ Լ ǥ ̸ ϶. Լ Ҹ ( Ǵ ) ȯѴ. Scheme Ҹ #T #F ̴. Scheme ʹ #F ſ (empty) Ʈ () ȯѴ. Լ ȯ ƴ Ʈ #T ؼȴ.

EQ? Լ ȣ Ű ´. Ű ̰ #T ȯѴ. ׷ , () ȯѴ. .

ó, EQ? Ʈ ϴ -  #T  () ȯ - ̴. EQ? (ΰ ־ ʹ Ҹ Ű°?) ǰ Ȯ Ʈ ޸𸮿 ʴ´. Scheme ý Ʈ , ׷ Ʈ ̹ ϴ° Ѵ. Ѵٸ, Ʈ Ʈ ο ̴. , Ʈ EQ? ؼ ȴ. ׷  쿡 Ʈ 縦 Žϴ ƴ. Ʈ ȴ. Ȳ EQ? () Ѵ.

EQ? ȣ ڿ ؼ ġ ڿ ݵ ʴ´ٴ Ϳ ϶. ġ ڸ ϴ . ó, EQ? Ʈ Ű ŷ ʴ´.

LIST? Լ, ó, ڰ Ʈ̸ #T ȯϰ ƴϸ () ȯѴ.

NULL? Լ Ű Ʈ ϱ Ű ˻ϰ Ʈ̸ #T ȯѴ. .

Ű Ʈ ƴϱ () ̴. , , Ʈ Ʈ̴.

Scheme ġ ͸ Լ Ѵ. ׵ Ϻ̴.

Լ

=

<>

>

<

>=

<=

EVEN?

ODD?

ZERO?

ǹ

ʴ

ũ

۴

ũų

۰ų

¦ΰ?

Ȧΰ?

(zero) ΰ?

EQ? ȣ ڿ ġ ڿ ݵ ϴ ƴϴٶ տ ߴ. = Լ ġ ڿ ȣ ڿ ݵ ϴ ƴϴ.

ȣ ġ  ؼ ڸ ˻ ִ ϴ. ̷ , Scheme ġ ȣڿ ϴ ٸ Լ (EQV?) ´. EQV? ſ EQ? = ϴ EQ? = EQV? ٴ ̴.

Scheme 2-3 Լ ´.

׷ Scheme α׷ κ EVAL ֻ- Լ ÷ϴ ̴.

Scheme Ű ޵ȴ. Լ Ű  ϵ Ű ʴ´.

(3) Լ ϴ Լ

տ Ͽ, LISP- Լ ϱ Ʈ · ȣ Ѵ. , ٽ Ʈ

־ Ű (Ʈ) ι° Ҹ ȯϴ Լ̴. Լ (̸ ִ) Լ Ǵ ȴ. Ű ϴ Ʈ տ Լ μ ȴ. , Լ B Ѵ.

ٽ Ű ǵ Scheme Լ Ű ο ϶. ǥĿ CDR ȣ Ű L ̴. L ٽij ε (bound variable) Ҹ. ε ٽ 򰡸 ó ȣǾ Ű ε ǥĿ ʴ´.

Ư Լ DEFINE Scheme α׷ 2 ⺻ ʿ - ̸ ε ̸ ǥĿ ε - ȴ. DEFINE Ÿ Ǵ ó δ. ׷ ̸ ε ƴ ̸ .

DEFINE , ˰ ǰ, CAR Լ Լʹ ٸ ƮDZ Ư̶ Ҹ .

DEFINE ȣ ǥ εϱ Ǵ ̴. .

, .

ǥ Scheme Ϳ ־ pi ־ 3.14159 ÷̵ ̰, two_pi ־ 6.28318 ÷̵ ̴.

DEFINE Լ ٽ ̸ ε۵ ȴ. , ٽ ܾ ٸ ϱ ȴ. Ŀ, DEFINE Űμ Ʈ Ѵ. ù° Ű Լ ̸ Ű ( Ʈ ) Լ ȣ Ÿ̰, ι° Ű (Ʈ) ̸ εǴ ǥ̴. DEFINE Ϲ .

⼭ Ű ޸ (comma) ƴ (spaces) иǰ ü Ʈ ǥĵ ̴.

DEFINE ȣ ̸ square ̸ ִ ǥİ εѴ.

ϴ Ͱ Լ Ѵٸ, ̰ ̴. Լ 25 ÷ ̴.

Լ ϱ Ǿ , Ư DEFINE ǹ̴ . ù Ű Ű κа ι° Ű ü Բ ٽ ϴ ȴ.

Լ DEFINE Ư ̸ ϱ .

DEFINE Լ, ǥÿ EVAL ù DEFINE Ű ϴ ̴. x ̹  յ ʾҴٸ, ̰ ̴.

ܼԼ ٸ μ .

, ̸ second ٽĿ εȴ.

Լ 򰡵ȴٸ, ó ִ.

B ȯѴ.

(4) 帧

Scheme 帧 ۱ Լ 帧 ۱ ߴ. Լ ǿ 帧 α׷ ۼ α׷ 帧 ſ ٸ. Լ 帧 ϴ ǵǴ ݸ鿡 Լ ߹ ʰ 帧 (recursion) ǥ Ѵ. , Լ (factorial function) ǵȴ.

ǽ (ȣ ǥ) Ʈ ӿ ϶. ȣ ǥ (guarded expression) ȣ ǥ ȴ. ׷ ǽ õ ǥ ̴. ϳ ־ Ű Ǵ Ű Ʈ ؼ ̴.

Scheme DZ - 2 - ð - ´. ̰͵ Ư̴. 2 - (IF) 3 Ű - , then_ǥ, else_ǥ - ´. IF ȣ .

, .

Լ ° ־ factorial ¿ 󸶳 ϶.

Scheme ڴ COND ȴ. COND ǽ ణ Ϲȭ ̴. װ ̻  ÿ Ѵ. ٸ ǽ ٸ Ű Ƿ, COND Ű 䱸 ʴ´. COND Ű ù ǥ ǥ ̴.

COND Ϲ .

 ELSE ̴.

COND ǹ̴ . Ű ó #T 򰡵 ϳ 򰡵ȴ. ׷ , #T ˷ ù ǥ 򰡵ǰ ǥ COND ȯȴ. #T COND ϶. , #T ǥ ׻ 򰡵ǰ COND ȯȴ. , #T COND Ű ϴ ǹ̰ ִ. Ư ELSE-#T ǹ - ׻ Ȳ Ϲ ȴ.

COND Ű ͵ #T 򰡵Ǵ  ʴ´ٸ, COND () ȯѴ. COND Ada case ó "otherwise" ù 缺 ϶.

(5) Scheme Լ

Scheme Լ Ѵ. α׷ ܼ Ʈ ó ذѴ.

־ ڰ ־ ܼ Ʈ ΰ ϴ (Ҽ - membership problem) . ܼ Ʈ θƮ ʴ Ʈ̴. Լ member Ǿٸ, װ ִ.

ݺ ϸ, Ҽ ־ ڿ ־ Ʈ Ҹ, ߰ߵ Ǵ Ұ ,  ѹ ϳ ܼ ϴ ̴. ͸ Ͽ ִ. Լ ־ ڿ Ʈ CAR ִ. ϸ, #T ȯȴ. յ , ڴ Ʈ ߰ߵ ִ. , Լ Ʈ Űμ Ʈ CDR Ͽ ڽ ȣϿ ȣ ȯؾ Ѵ. , ͷκ - Ʈ  ȣ⿡ Ʈ̰ () ȯǰų ߰ߵǾ #T ȯǴ - ִ.

Ͽ, Լ óؾ 3 - Է Ʈ, ڿ Ʈ CAR , ڿ Ʈ CAR ġ ( ȣ ߻) - ִ. 3 찡 Ȯ COND 3 Ű̴. ELSE Ǵ Ʈ ̴. Լ ̴.

ܼ Scheme Ʈ-ó Լ̴. Լ, Ʈ ִ ʹ ѹ Ҿ óȴ. Ҵ CAR ؼ ó Ʈ CDR ͸ Ͽ ӵȴ.

Ʈ CAR ̱ ˻ (equality) ˻ ̷ ϶.

ٸ μ, ־ Ʈ Ѱ ϴ . Ʈ ܼϴٸ, ģġ , ش . ܼ Ʈ ϴ Լ .

COND ù Ű ؼ ٷ ù ù Ʈ Ű Ʈ ̴. ù Ʈ Ű ó Ʈ ܺȣ⿡ ߻ ִ. ȣ Űμ Ű CDR ϱ , ù Ʈ ȣ⿡ ڽ Ҹ ϰ ߴٸ ̷ ȣ⿡ ù Ʈ Ʈ ִ. ù Ʈ Ʈ , ι° Ʈ Ʈ ˻Ǿ Ѵ. ׷ٸ, ׵ (ó Ǵ ȣ⿡ CAR ), NULL? Ȯ #T ȯѴ. ι° Ʈ Ʈ ƴ϶, װ ù Ʈ ũ NULL? ؼ () ȯǾ Ѵ. Լ ؼ ȯǴ ƴ Ʈ #T ؼȴٴ ȸ϶.

ù Ʈ Ʈ ƴϰ ι° Ʈ Ʈ 츦 ٷ. Ȳ ù Ʈ ° Ʈ Ŭ ߻Ѵ. ù 찡 ù Ʈ Ʈ 츦 óϱ ° Ʈ ˻Ǿ Ѵ.

° Ʈ Ǵ ˻ϴ ̴ܰ. ƴ Ʈ CAR μ ̰ Ѵ. ׵ ٸ, Ʈ . ʹ Ʈ CDR ȴ. ڰ ߰ߵ Ѵ. ̰ ߻ϸ, и ϱ⸦ ʴ´. Ʈ 찡 Ǿ 񱳾 Լ () ȴ.

equalsimp Ű Ʈ ϰ Ȥ Ű ̸ Ȯϰ ϶.

Ϲ Ʈ ϴ , θƮ Ǿ ϱ , ̰ ణ ϴ. θƮ ° ־ Ʈ ¿ ϱ , ̰ ɷ ٽ Ȳ̴. ־ Ʈ ϴ Ұ Ʈ , ׵ κ - CAR CDR - иǾ Ͱ ȴ. ̰ - (divide-and-conquer) Ϻ ̴. ־ Ʈ ϴ Ұ ڶ, ׵ ܼ EQ? Ͽ ִ.

Լ ̴.

COND ó Ű ϳ Ʈ Ȳ óѴ. ° ׹° Ǵ Ʈ Ʈ ̴. μӵ 찡 Ʈ CAR ϴ ´. ټ° COND ſ ̷Ӵ. Űμ Ʈ CAR ȣ̴. ȣ #T ȯϸ, ʹ ٽ Ʈ CDR ȴ. ̰ Ʈ Ʈ ϴ Ѵ.

equal Ǵ Ʈ ƴ ǥ ֿ Ѵ. equal ý Լ EQUAL? ϴ. EQUAL? EQ? EQV? ξ ʿ ( Ű ° ˷ ) Ǿ Կ ϶.

ٸ Ϲ ʿ Ʈ ΰ ־ Ʈ Ҹ ϴ Ʈ ϴ ̴. ̰ Ϲ append Scheme Լ ȴ. ̰ ù Ʈ Ҹ ι° Ʈ ڿ CONS ݺ ν ִ. append Ȯϰ ϱ .

(append '(A B) '(C D)) (A B C D) ȯѴ.

(append '((A B) C) '(D (E F))) ((A B) C D (E F)) ȯѴ.

append Ǵ .

member Լ ϴ quess Scheme Լ . Ʒ ִ б װ ϴ ϵ õ϶. Ű ܼ Ʈ ϶.

quess Ű ܼ Ʈ Ѵ. quess Ű Ʈ Ҹ ϴ ܼ Ʈ Ѵ. , Ű Ʈ ̶, quess Ÿ Ʈ Ѵ.

LET ̸ ӽ÷ ǥ εǴ ϴ Լ̴. װ ǥĿ ǥ μ ϱ ȴ. ׷ , ̸ ٸ ǥ 򰡿 ȴ. Ϲ .

LET ǹ̴ ó n ǥ 򰡵ǰ ̸ εȴٴ ̴. ׷ , ü ǥ 򰡵ȴ. LET ü ǥ ̴. LET Ѵ.

÷ϱ DISPLAY Լ ϱ DISPLAY Լ quadratic_roots .

Ada declare LET ο Ѵ. ǰ, ǰ, ȴ. LET Ҵ , LET ִ. , ׵ LET ε .

LET LAMBDA ǥ ̴. ϴ.

ù° ǥĿ, 7 LET alpha εȴ. ι° ǥĿ 7 LAMBDA ǥ Ű ؼ alpha εȴ.

(6) Լ

Scheme Ǵ Ϲ Լ - Լ ռ - - Ѵ.

Լռ

Լռ LISP ϳ Լ ̴. Scheme LISP Ļ Լ ¸ Ѵ. ռ Լ EVAL ϴ ̴. -ο Ʈ Լ ȣ ؼȴ. Լ ȣ Ű 򰡵Ǵ 䱸Ѵ. ̰ ǥ Ʈ Ѵ. ̰ Ȯ ռ Լ ǹϴ ̴. ռ Լ Ѵ.

ȣ⿡ Լ ̸ ͷ ͷμ ޵DZ⺸ٴ 򰡵Ǿϱ ο ϶.

- Լ

Լ α׷  Ϲ Լ ´ - Լ ̴. ̰ Ű - Լ Ʈ - mapcar ̴. mapcar ־ Լ ־ Ʈ ҿ Ͽ Ʈ ȯѴ. mapcar Scheme Ǵ .

Լ ¸ ǥϴ mapcar ¿ ϶. ̰ Scheme ǥ ̴.

mapcar μ, Ʈ Ҹ ϱ⸦ Ѵٰ . ̰ ִ.

ȣ (27 64 8 216) ȯѴ.

mapcar ù Ű LAMBDA ǥӿ ϶. EVAL LAMBDA ǥ , ̸ Լ ϰ ̸- Լ ¸ Լ Ѵ. ǥĿ, ̸ Լ Ű Ʈ ҿ ǰ Ʈ ȯȴ.

(7) ڵ带 ϴ Լ

α׷ Ͱ ´ٴ α׷ ̿ ִ. α׷ Լ EVAL ȣ ֱ ٸ α׷ Ͽ ִ.

ϳ ġ ڸ Ѵ. κ Scheme ý, Ű ġ ڸ Ͽ ȯϴ + Ҹ ġ ڿ Լ Ѵ. , (+ 3 7 10 2) 22 ȯѴ.

α׷ ġ Ʈ Ѵٰ . + ġ Ʈ ƴ ġ Ű ֱ + Ʈ . , Ʈ ϱ ͸ Ͽ Ʈ CAR CDR տ ݺ ϴ Լ ۼ ִ. ׷ Լ .

ٸ ذå Ű · + ȣϴ Լ ۼϴ ̴. ̰ + ġ Ʈ ϱ CONS ν ȴ. ׷ , Ʈ 򰡸 EVAL Ѵ.

+ Լ ̸ CONS 򰡿 EVAL + ϴ οǾ. μ, ȣ

adder Ʈ ϰ Ѵ.

׷ , Ʈ EVAL Ǹ, EVAL + ȣϿ 13 ȯѴ.

Scheme ʱ , EVAL Լ α׷ ܰ ִ ǥ Ѵ. Scheme ֽ (Scheme 4) ǥ 򰡵Ǵ ϴ EVAL ι° Ű 䱸Ѵ. ϱ Ͽ, Ű Ͽ ⼭ ̻ ʴ´.

(8) Scheme Ư¡

ٸ LISP Ļ Scheme κ Ư¡ ϰ ִ. , ̸ εǰ, ׷ ε Ŀ ִ. ̰ Լ SET! Ͽ ȴ.

SET! Լ ε ȯѴ.

LISP Լ Ʈ . ׵ CAR CDR и , ־ Ʈ . ֳϸ, ̰ Լ ȣ Ư¡ - ۿ - 䱸ϱ ̴. Scheme ׷ ۿ (side effect) ϴ Լ, SET-CAR! SET-CDR!, Ѵ. .

SET-CAR! 1st ε Ʈ (A B) (C B) Ѵ.

SET_CDR! Ʈ (C B) (C D) Ѵ.

Scheme Ư¡ ȿ Scheme ԵǾ, Լ α׷κ Ż . α׷ Ī (aliasing) ɼ ۿ Լ ٸ ð ٸ ϴ ϱ , α׷ ׿ ϱⰡ . , .

inc_count Ʒ ȣ , ٸ Ѵ.

6. COMMON LISP

COMMON LISP (Steele, 1984) Scheme Ͽ LISP 1980 ʹ Ļ Ư¡ ϳ ϱ źߴ. ̱ ſ ũ ̴. ׷ LISP ̹Ƿ , Լ, ⺻ LISP ̴.

Ģ ܼ Ģ Ư Ͽ. COMMON LISP Ѵ. Ʈ Ģ , "special" ν, Ģ ȴ.

COMMON LISP Ư¡ : ڵ, 迭, Ҽ, Ʈ Ÿ԰ , , Լ ȭϴ Ű, , Scheme Ư¡ - Ư Scheme SET!, SET-CAR!, SET-CDR! ϴ ϴ Լ - ü Ư¡ ִ.

Scheme LISP Ļ Բ COMMON LISP  Ϲ  ϴ PROG Լ Ѵ. ̺ Լ - GO RETURN - ݺ  ϱ ԵǾ. GO  PROG ȿ ִ ̺ űµ ȴ. RETURN PROG ̴. PROG Ϲ .

NIL ʱȭǰ, PROG , PROG ൿȸ Ѵ. ִٸ, PROG ġ Ѵ (ȴ). PROG ǥ ̺ óȴ. GO  PROG ǥ Ʈ ȿ ִ ̺ Ű Ѵ. RETURN PROG Ǵ Ű ´.

PROG LISP Ļ ȣȯ ϱ LISP ǿ ԵǾ ϶. COMMON LISP PROG ɷ ϱ ִ. , COMMON LISP ݺ DOTIMES DOLIST, PROG1, PROG2, PROGN ´.

SETQ Scheme SET! Ǵ COMMON LISP Լ̰, DEFUN DEFINE COMMON LISP ̴. Ʈ Ҽӿ Լ ݺ . ݺ ڿ 5.5 Ͱ ־.

 

T Ҹ COMMON LISP ̰, NIL Ҹ ̰, ATOM Ű ΰ ϴ Լ̰, Ʈ Ʈ ڷ ֵʿ ϶.

ٸ μ, Ʈ ̸ ϴ ݺ Լ .

 

 ǹ̿, Scheme COMMON LISP ݴ. Scheme Ģ ϱ ξ ۰ ϴ. COMMON LISP ȵǾ AI 뿡 ϰ Ǵ . , Scheme Լ α׷ֿ ȴ. Scheme ũ Լ ǰ ִ. ſ ū  ǰ COMMON LISP ߿ LISP Ļ ȣȯ ϴ 䱸̴.

7. ML

ML (Milner et al., 1990) Scheme Լ α׷ . ML ߿ 鿡 LISP Scheme LISP Ļʹ ٸ. ML LISP ٴ Pascal Ѵ. ML Ÿ , Ÿ ߷ ( ʿ䰡 ǹ) ϸ, Ÿ . ǥ Ÿ ð ִ. ̰ Ÿ Scheme ѷ ̷. ML ó ߻ Ÿ ϴ ġ Ѵ. ML ߿ Ư¡ 2 忡 ־. 4 ML Ǵ Ͱ Ÿ ߷ 信 Ұ ϰ ִ.

ML , ̸ εȴ.

, .

ʱ ٴ . val ̸ ε, ̸ Ŀ ε . ۽,  ǹ̿ ִ. , ̸ ι° val εѴٸ, ̸ ׸ ȯ濡 . , Ÿ ʿ䰡 . val ۿ ʴ´. ܼ ̸ Ȳ ÷ϰ, LISP LET ó, װ εѴ. val Ϲ let ǥĿ ǰ, Ϲ .

, .

ML Ʈ Ʈ ´. LISP ʴ. ML Ÿ, 迭, ڵ Ʃ (tuple) ´.

ML Լ .

, .

x Ÿ Ϸ ؼ , Լ Ǵ ʴ´.

׷ ڸ ϴ Լ Լ . =, <>, Ҹ ڸ ڸ ϴ Լ . ׷ Ʈ , =, <>, Ʃ (Ʃ ϴ ڿ Ҹ ϴ ) ϴ Լ Լ ִ.

ML 帧 ǥ̴.

E Ҹ 򰡵Ǿ Ѵ. ǥ ϳ 򰡵ȴ. ML Ÿ ȯ (type coercion) .

ڳ ǿ Ÿ ϱ ܼ ġǾ Ѵ.

8. Haskell

Haskell (Thompson, 1996) ϰ, Ģ̰, Ÿ̰, Ÿ ߷ Ѵٴ 鿡 ML ϴ. Haskell Լ̶ - ۿ - ML ٸ. , ۿ ʰ  Ư¡ ʴ´. ̰ Haskell ٸ α׷ иŲ. ٸ Ư Haskell ML иѴ. ù°, Haskell (lazy evaluation) - ǥ 䱸 򰡵 ʴ´ - ٸ Ѵ. °, Haskell Ʈ ϴ Ʈ ϴ ִ. ̰ Ʈ (list comprehension) ̶ θ. Haskell ٸ Ư¡ Miranda  ΰ ִ (Turner, 1996).

ڵ Haskell 1.4 ۼǾ.

Լ Ǹ . Լ ǿ Լ Լ ̸ ܼ Ű ۼʿ ϶.

Ǵ Լ ǰ ̻ ش. ⼭ ٸ Ű Ű Īν õȴ. Ű и Ű ü յȴ. Ű ̸ Ͽ յ Ű յȴ. ׷ , յ Ű 캯 ǥĿ ̸ ȴ. ǵ Լ- Ű - κԼ̴.

Ī Ͽ, n ° Ǻġ ϴ Լ ִ.

ȣ (guard) Լ ǰ Ǵ Ȳ ϱ Լ ǿ ÷ ִ. , .

Ǵ, Ű Լ ϴ ϱ , Ǻ Լ ̴. , Ű Ѵ n ̱ , Ī ⿡ Ѵ. ԼǸ ǥ̶ Ѵ.

otherwise ǥĿ Ÿ ִ. , .

Ʈ ȣ (bracket) ۼȴ.

Haskell Ʈ Ѵ. , Ʈ ++ ְ, : CONS ڷ Ǹ, .. ޼ (arithmetic series) ȴ. , .

Ʈ ϴ Լ .

, a : x CAR () μ a CDR () μ x Ʈ Ѵ. sum ־ Ʈ ȯѴ. product ־ Ʈ ȯѴ. sum product ǥ Haskell Լ̴. product Ͽ, Լ ۼ ִ.

length Լ ־ Ʈ ȯѴ. ,

length (colors) 4 ȯѴ.

Haskell where ε ǥ ڿ ȴٴ ͸ ϰ ML let val ϴ. , ۼ ִ.

Ʈ Ÿ Ʈ ϴ Ѵ. Ʈ п ϱ ϴ . Ϲ .

, [n * n * n | n <-- [1..50]]

1 50 3 Ʈ Ѵ. ̰ "n 1 50 n * n * n Ʈ" д´. (generator) ̴. װ 1 50 Ѵ. ٸ 쿡, ´ Ҹ - ̰ ׽Ʈ (test) Ҹ - ̴. ȣ Ʈ ġȯ ãų Ʈ İ ϴ ˰ ϴ ȴ. , n ־ , n Ʈ ȯϴ Լ .

, quicksort ˰ Ʒ Haskell .

quicsort Ǵ ۼ ˰򺸴 ª.

ư. Scheme Լ Ű Լ ȣDZ 򰡵Ǿ Ѵٴ ȸ϶. 򰡴 Լ Ű Լ ϴ ʿ 򰡵Ǿ Ѵٴ ǹѴ. Լ Ű , Լ Ư 򰡿 ù Ű ʴ´ٸ, ࿡ ޵ ù° Ű 򰡵 ʴ´. , Ű Ϻθ Լ ࿡ 򰡵Ǿ Ѵٸ, 򰡵 ä ´. , Ű, Ѵٸ, ѹ Ѵ.

 򰡸 Ѵٴ ִ ɼ Ѵ. ̰ ߿ ϳ ϴ ̴. , .

,  ǻ͵ δ Ʈ Ҹ Ÿ , 򰡰 ȴٸ ׵ ʴ´. ,  ˰ Ѵٸ, Ҽ Լ squares Ʈ ˻ ִ. ־ Ʈ ־ Ҹ ϴ ϴ member Լ ִٰ . ׷ װ ִ.

True ȯѴ. squares Ǵ 16 ߰ߵ 򰡵 ̴. member Լ ۼǴ ʿϴ. Ư, װ ٸ,

־ member squares Ȯϰ ̴. ׷ ʴٸ, squares Ǵ, ־ Ʈ ã鼭,  ޸ Ѱ迡 squares ̴. Լ, ã ϴ ū ߰ߵ Ž ϰ False ȯϸ鼭, Ʈ Ҽӿ ˻縦 Ѵ.

򰡴 ƴϴ. ׷ ǥ° ¥ и ϴ. , ξ ӵ ߱ϴ ſ ǹ̷̴.

9. Լ

α׷ 35 ̻󵿾 2 - 3 Լ  ϰ Ǿ. ̰ ߿ LISP ̴. Կ ұϰ, APL κ Լ ¸ ϱ Լ ȴ.

APL ϵ ýۿ ̸ پ ǰ ִ. APL α׷ д о߿ ڿ ġ ۼϴ α׷ о̴. 迭 , APL 迭 ϴ ش Ǹ ̴.

LISP 뼺 ְ . ó 15 , ϴ ̻ ַ ڿ ؼ Ǿ. , 1960 1970 ʹݿ з - LISP η ٸ α׷  η - Ǵ Ϲ̾.

忡 Ѵ, LISP ȣ Ʈ-ó ( AI о) ߵǾ. AI 뿡, LISP Ļ ǥ ̴.

AI ַ LISP Ͽ о߰ ߴ޵Ǿ. ٸ - ַ α׷ - , κ ý LISP ߵǾ. LISP ǥ, н, ڿ ó, Ʒ ý, ð 𵨸 о߿ е̴.

AI о ۿ, LISP ̴. , ȣ ϴ ȣ ý, MACSYMA ó, EMACS ؽƮ ͵ LISP ۼǾ. LISP ý Ʈ LISP ۼ ο ǻ̴. LISP پ о߿ ý ϴ Ǿ.

Scheme Լ  ϴ ϰ ȴ. Scheme  п α׷ ġ ȴ. ML Haskell , κ, ̳ п ѵǾ.

10. Լ

Լ α׷ְ Լ α׷ -  ϰ ǰ  ϰ Ǵ - ǰ ʷ ־.

Լ α׷ְ  α׷ ϴ ڿ. von Neumann ʷ ϱ ,  ϴ α׷Ӵ ٷ Ѵ. ȿ , α׷ . Լ , ޸  ߻ȭ ʿ䰡 α׷Ӵ ʿ䰡 . ȿ ̴. ׷ ٸ ,  α׷ֺ 뵿 䱸ϴ α׷̴. ̰ ̰ Լ α׷ Ȯ ̶ ϴ´.

Լ ſ ִ. LISP Ʈ ̴. ξ ϴ. Լ ǹ̷ ǹ̷а Ͽ ϴ.

 ü ϱ⵵ ư ϱ⵵ ƴ. , ü ½ũ α׷ å Ada ½ũ . Լ α׷ ׷ Ͽ ִ. ׷ , ׷ α׷Ӱ ü ִ ׷ ؼ ȴ. ׷ ǥ ü ȸ ڿ ǥѴ. ȭ α׷ ɻ簡 ƴϴ. å Ѵ´.

, α׷Ӵ α׷ ü κ ϰ, κ ٽ ½ũ ۼѴ. ̰ ̴. Լ α׷ ýۿ ؼ ü κ . α׷ Ǵ ϵ ϰ ϰ .  ü α׷ ϴ ƴ.

Լ 򰡸 ϱ ǰ ͸ ϴ (named) Ǵ (unnamed mapping) ̴. Լ Լ Ű, ȯ (Ǵ ) Ǵ Լ ¸ Ͽ ִ. Լ α׷ Լ 𵨷 ϰ ִ. ¿ ϱ ʴ´. Լ , ǽ,  , Լ ϱ Լ ¸ Ѵ. LISP Լ ۵Ǿٸ, ȿ Ű Ͽ ټ Ư¡ ÷ߴ.

LISP ù AI 뿡 Ʈ-ó  ʿ伺 ܳ. LISP AI о߿ ϰ Ǵ .

LISP ù ߰̾. EVAL LISP Լ ۼ ִٴ ϱ ߵǾ.

LISP Ϳ LISP α׷ ̱ , α׷ ٸ α׷ ϰ ϴ ϴ. EVAL ̿뼺 ׷ α׷ ϴ Ѵ.

Scheme Ģ ϴ LISP ܼ Ļ. LISP , Scheme ֿ Լ Ʈ ϰ ϴ Լ, ǽ Լ, , ȣ, Ʈ ܼ Լ Ѵ. Scheme ־ Ʈ Ҹ Ѵ.

COMMON LISP 1980 ʹ LISP Ļ κ Ư¡ ϵ Ŀٶ LISP- . COMMON LISP Ģ ϰ Ư¡ Ѵ.

ML LISP ٴ Pascal ϴ ̰ Ÿ Լ α׷ . ML Ÿ ߷ ý۰ ó ϰ ML ߻ Ÿ ϴ .

Haskell ML , Լ̴. . Haskell ǥ Ͽ 򰡵ȴ. Ʈ μ Haskell α׷ Ʈ óϵ Ѵ.

LISP  ֿ о߰ AI , ٸ ذ о߿ ǰ ִ.

 ؼ Լ , von Neumann 迡 ȿ Լ  ü μ ϴ ִ.

LISP ǥ ù McCarthy (1960) ߰ߵ ִ. 1960 ߹ݺ 1970 ϰ McCarthy et al. (1965) Weissman (1967) Ǿ ִ. ణ ǥȭ COMMON LISP Steele (1984) Ǿ. Ű Ҿ Scheme Rees Clinger (1986) ǵǾ. Dybvig (1996) Scheme α׷ֿ ڷ̴. ML Milner et al. (1990) ǵǾ. Ullman (1994) ML Ǹ Թ ̴. Haskell α׷ Thompson (1996) ҰǾ.

Ϲ Լ α׷ֿ Ǵ Henderson (1980) ߰ߵ ִ. ׷ Լ Peyton Jones (1987) Ǿ.

1. Լ ¿ Ͻÿ.

2. LISP Ÿ ΰ?

3. EQ?, EQV?, = ΰ?

4. Scheme DEFINE Լ Լ ΰ?

5. DEFINE ΰ?

6. COND ǹ̸ Ͻÿ.

7. LET ǹ̸ Ͻÿ.

8. Ư¡ κ LISP Ļ ÷Ǿ°?

9. COMMON LISP Scheme 鿡 ݴΰ?

10. Scheme , COMMON LISP, ML, Haskell Ǵ Ģ ΰ?

11. ML Scheme ٸ ΰ?

12. ML Ÿ ߷ ΰ? (4 ÿ)

13. Scheme ſ ٸ Haskell Ư¡ ΰ?

14. 򰡴 ǹϴ°?

1. Ʈ Ű Ʈ ȯϴ Scheme Լ ۼϽÿ.

2. ־ Ʈ  (structurally equality) ˻ϴ Scheme Լ ۼϽÿ. Ʈ Ʈ ´ٸ (ڴ ٸ) ٰ Ѵ.

3. Ÿ ܼ Ʈ Ű ȯϴ Scheme Լ ۼϽÿ.

4. ־ ڰ ŵ Ʈ ȯϴ Ű - ڿ Ʈ - Scheme Լ ۼϽÿ. ȯ Ʈ ŵ ڴ ͵ .

5. Ű Ʈ ϰ ι° Ұ ŵ Ʈ ȯϴ Scheme Լ ۼϽÿ. ־ Ʈ Ҹ ʴ´ٸ, Լ () ȯؾ Ѵ.

6. FP (Backus, 1978) John Backus а 忡 Scheme Ư¡ FP Ǵ Ư¡ Ͻÿ.

7. Scheme Լ EVAL APPLY Ǹ ã, ׵ Ͻÿ.

8.  ̰ α׷ ȯ ϳ LISP INTERLISP ý̴. ý "The INTERLISP Programming Environment," by Teitelmen and Masinter (IEEE, Computer, Vol. 14, No. 4, April 1981) Ǿ ִ. а ýۿ LISP ۼϴ INTERLISP ϴ Ͻÿ ( Ϲ INTERLISP ʴ´ٰ Ѵ).

9. LISP α׷ֿ å ϰ PROG Ư¡ LISP ϴ ϴ Ͻÿ.

10. Լ Ʈ ƴ  ִ. , ȣ (sequence of symbols) ִ. ׷ Scheme CAR, CDR, CONS Լ ſ  Լ °?

11. Scheme Լ ϴ°?

12. Scheme Լ ϴ°?