목록scheme (3)
살아가는 이야기
누군가 QorA 게시판에 이를 물어 보았고, 관련하여 나와 비슷한 깨달음을 얻은 사람의 답변이 있어서 번역해 봅니다. Lisp은 어떤 사람들에게는 종교라기보다 종교에 가까운 경험이라고 말하고 싶군요. Lisp은 확실히 하나의 프로그래밍 언어가 아닙니다. Clojure처럼 실용적으로 사용할 수 있는 Lisp 형태가 있지요. 물론 R5RS Scheme처럼 덜 실용적인 것도 있습니다(R5RS Scheme을 실용적으로 사용하려면 사용자가 별도 구현을 추가해야 함). 제가 Lisp을 종교적 체험이라고 말한 이유는 대부분의 사람들이 Lisp을 사용하다가 어떤 깨달음을 얻기 때문입니다. 코드는 트리로 나타낼 수 있는 데이터에 불과하다거나 다른 트리 구조처럼 코드도 생성하거나 없앨 수 있다든지 하는 깨달음 말입니다. ..
msys2 터미널에서 pacman을 이용하여 guile을 설치한다. Windows에서 msys2 설치 방법은 이전 글을 참고하기 바란다. pacman -S guile 가볍게 엔터 키를 누르면 설치가 진행되고 잠시 후 완료된다. 이제 다음과 같이 수식을 입력해 보자. (+ 2 3) (+ (* 2 3) 4) Scheme은 LISP 변종으로서 전위 표기법(prefix)을 사용한다. 따라서 2 + 3 대신 (+ 2 3)으로 적어 주어야 한다.
LISP으로부터 파생된 Racket이라는 언어가 있다. 사실 언어라기보다 여러 언어의 집합이라고 할 수 있는데, 표준 Scheme을 지원하기 때문에 유명하다. 초기 DrScheme에서 PLT-Scheme으로 발전하였다가 지금은 그냥 Racket이라고 부른다. LISP의 특성상 괄호가 상당히 많은 비중을 차지하게 되는데, 이로 인해서 괄호에 맞는 들여쓰기가 프로그램을 이해하는 데 큰 도움이 된다. 하지만 이로 인해서 코드를 수정할 경우 들여쓰기를 다시 지정해야 하는 경우가 많다는 단점이 있다. 그렇다면 Racket 소스에서 어떻게 들여쓰기를 재지정할 수 있을까? 가장 간단한 방법은 코드를 선택하고 tab 키를 타이핑하는 것이다. 그러면 아래와 같은 소스코드가 아래와 같이 제대로 들여쓰기된다.