Lisp 언어의 변종인 주요 후계자 언어로는 보통 Common Lisp 과 Scheme 두 가지가 꼽힌다.

Scheme 언어는 1975년~1980년 기간에 MIT 인공지능 연구실에서 Guy L. Steels 와 Gerald 와 Jay Sussman 에 의해 개발되었으며, RnRS(Revised Report on the Algorithmic Language Scheme) 라는 이름으로 그 표준이 공개되어 왔다. (여기서 n은 숫자) R5RS는 1998년에 발표되었으며 가장 널리 쓰여진 Scheme 이며, R6RS 는 2007년 8월 27일에 발표되었고, R7RS 가 최근 2012년 12월 10일에 발표 되었다. (이 중 R6RS 는 Sheme 의 최소 설계 철학(minimalist design philosophy) 에 관해 논쟁이 좀 있었던 버전이다.)

 

1. 윈도우용 Scheme 9.1.1 설치 후 명령 프롬프트에서 실행하기

 

명령 프롬프트> set PATH=d:\scheme\bin;%PATH%

명령 프롬프트> set MITSCHEME_BAND=d:\scheme\lib\all.com

명령 프롬프트> mit-scheme

(또는 명령 프롬프트> mit-scheme --edit )

(또는 명령 프롬프트> mit-scheme --edwin )

 

* 소스 파일명: hello.scm  (Scheme 설치 후 테스트 파일. 환경변수 MITSCHEME_BAND 가 필요)

(define (greet msg)
  (write (string-append "Hello, " msg "\n"))
  (newline)
  (display (string-append "Hello, " msg "\n")))

(greet "world!")

 

명령 프롬프트> mit-scheme

 

mit-scheme 을 실행시킨 후, Scheme 창에서 명령

        (cf "hello")

        (load "hello")

        (exit)

 을 차례로 내린다.

 

* 소스 파일명: fact.scm  (Scheme 설치 후 테스트 파일. 환경변수 MITSCHEME_BAND 가 필요)

(define (fact n)
  (if (= n 0)
      1
      (* n (fact (- n 1)))))

 

명령 프롬프트> mit-scheme

mit-scheme 을 실행시킨 후, Scheme 창에서 명령

        (cf "fact.scm")

        (load "fact")

        (fact 100)

        (exit)

 을 차례로 내린다.

 

2. 윈도우에 설치된 Cygwin 에서 Scheme 실행하기

cywin 에는 Scheme 은 설치가 안되지만, CHICKEN Scheme 가 이미 설치되어 있다. CHICKEN Scheme 은 R5RS 이다. (cygwin 설치시 함께 설치된 것은 다소 낮은 버전 2008년 3,4,0 이다.)

csc 는 컴파일 명령이고, csi 는 대화형 인터프리터 명령이다.

$ which chicken

$ which csc        (csc 는 C# 캄파일러가 아니고, CHICKEN Scheme Compiler 이다.)

$ which csi

$ which scsh      (scsh 는 CHICKEN Scheme 과는 상관없고,  Sheme shell script 해석기이다.)

 

* 소스 내용 확인

$ more hello.scm
(define (greet msg)
  (write (string-append "Hello, " msg "\n"))
  (newline)
  (display (string-append "Hello, " msg "!\n")))

(greet "world!")

 

* 대화형 인터프리터 실행

$ csi

CHICKEN
(c)2008 The Chicken Team
(c)2000-2007 Felix L. Winkelmann
Version 3.4.0 - windows-cygwin-x86      [ manyargs dload ptables applyhook ]
SVN rev. 11987  compiled 2008-10-09 on NTXCN1042727 (CYGWIN_NT-5.1)

#;1> (load "hello.scm")
; loading hello.scm ...
"Hello, world!\n"
Hello, world!
#;2> (greet "안녕?")
"Hello, 안녕?\n"
Hello, 안녕?
#;3> (greet "CHICKEN Scheme")
"Hello, CHICKEN Scheme\n"
Hello, CHICKEN Scheme
#;4> (exit)

 

* 컴파일 후 실행

$ csc -o hello hello.scm

$ ./hello
"Hello, world!\n"
Hello, world!

 

* 소스 내용 확인

$ more fact.scm
(define (fact n)
  (if (= n 0)
      1
      (* n (fact (- n 1)))))

* 대화형 인터프리터 실행

$ csi

CHICKEN
(c)2008 The Chicken Team
(c)2000-2007 Felix L. Winkelmann
Version 3.4.0 - windows-cygwin-x86      [ manyargs dload ptables applyhook ]
SVN rev. 11987  compiled 2008-10-09 on NTXCN1042727 (CYGWIN_NT-5.1)

#;1> (load "fact.scm")
; loading fact.scm ...
#;2> (fact 10)
3628800
#;3> (exit)

 

Posted by Scripter
,