본문 바로가기
프로그래밍/함수형 프로그래밍

도커(Docker)로 리스프(LISP) 실행하기

by bantomak 2024. 3. 26.

도커 컨테이너 접속

윈도우 시작 탭에서 PowerShell을 관리자 권한으로 실행하자.

 

먼저, 도커 이미지를 다운로드한다.

$ docker pull everypreciousday/functionalbigdata:latest

 

다운로드한 이미지를 바탕으로  컨테이너를 실행한다.

$ docker run -it --name fpstudy everypreciousday/functionalbigdata:latest /bin/bash

 

리스프 실행 방법 - REPL

설치한 도커 이미지에는 CLISP 및 REPL 환경이 설치되어 있다. REPL은 'Read Eval Print Loop'의 약자다. REPL을 사용하면 코드를 한 줄씩 입력하고 그 결과를 즉각적으로 확인할 수 있다. 즉, 마치 컴퓨터와 대화하듯이 한 문장씩 주고받을 수 있어서 프로그래밍 언어를 익힐 때 유용하다. CLISP의 REPL을 기동 하는 방법은 다음과 같다.

 

$ clisp

 

 

REPL  종료 방법

> (quit)

 

간단한 표현식을 입력해 보자.

> (+ 3 5)

 

8이 출력된다.

 

S-표현식

(+ 3 5)를 입력했을 때 8이 출력되는 건 쉽게 예상해 볼 수 있었을 것이다. 처음 보는 사람에게는 매우 생소할 이 표기법을 S-표현식(Symbolic Expression)이라 부른다. S-표현식은 xml, json이나 yaml처럼 데이터를 표현하는 포맷 중 하나다. 리스프는 특이하게도 데이터를 표현하는 포맷을 프로그래밍의 문법으로 채택한 것이다. 이는 마치 xml로 프로그래밍을 작성하는 것과 비슷하다고 볼 수 있다. 다만 S-표현식은 매우 단순한 규칙을 따르기 때문에 다른 데이터 포맷보다는 훨씬 더 프로그래밍 언어에 적합하다. 리스프에서 S-표현식을 사용하여 프로그래밍을 작성할 때는 다음 규칙을 따른다.

 

  • 규칙 1. 하나의 표현식은 괄호로 시작하고 괄호로 끝난다.
  • 규칙 2. 기본적으로 괄호의 첫 번째 요소는 함수의 이름이고, 이어지는 값들은 함수에 전달되는 인자들이다.
  • 규칙 3. S-표현식은 식이다. 따라서 리스프 인터프리터에 의해 평가되어 값이 반환된다.

두 번째 규칙은 전위 표기법(Prefix Notation)이라 한다. 전위 표기법에 익숙해지는 데는 약간의 노력이 필요하다. 어느 정도 익숙해지기 전까지는 코드를 작성할 때 본능적으로 중위 표기법을 사용하는 자신을 발견하게 될 것이다. 하지만 이 규칙도 익숙해지기만 하면 코드를 작성하거나 분석할 때 꽤 효율적인 구조라는 것을 깨닫게 된다.

 

출처

 

함수형 언어 산책 - 예스24

함수형 언어와 빅 데이터 처리 프레임워크 학습을 위한 실습형 안내서이 책은 최초의 함수형 언어인 리스프(LISP)부터 리스프를 바탕으로 만들어진 강력한 에디터인 이맥스(Emacs), JVM 위에 되살아

www.yes24.com

댓글