이 노트에 대하여

리스프는 오래된 언어 계열이지만 여전히 사고 도구로서 강한 매력을 가진다. Common Lisp, Scheme, Clojure, Emacs Lisp는 서로 다른 장면에서 코드와 데이터를 가깝게 붙여 놓는다. 언어 설계와 AI, 편집기 문화가 만나는 결절점으로 읽을 수 있다.

히스토리

  • [2026-07-06 Mon 12:10] 래킷, 스킴, 이맥스리스프, 하이랭 노트들을 통합했다. 내보내자.
  • [2026-03-14 Sat 20:15] 클로저 관련 노트들을 연결해봐요
  • [2025-06-03 Tue 18:54] 리스프
  • [2025-05-15 Thu 12:20] 하이랭이 요즘 대단 하이!
  • [2025-03-28 Fri 12:49] 하이랭 1.0
  • [2024-06-20 Thu 12:53] 역사가 깊은 이녀석을 안하면 손해다.
  • [2023-07-29 Sat 05:27] (“Clojure” n.d.) 생성

관련메타

BIBLIOGRAPHY

피터 노빅. 2022. Paip: Paradigms of Ai Programming with Common Lisp. https://en.wikipedia.org/w/index.php?title=Paradigms_of_AI_Programming&oldid=1091857653.

“Aimacode/Aima-Lisp: Common Lisp Implementation of Algorithms from Russell and Norvig’s ‘Artificial Intelligence - a Modern Approach’.” n.d. Accessed June 18, 2024. https://github.com/aimacode/aima-lisp/tree/master.

“Clojure.” n.d. Accessed May 29, 2024. https://clojure.org/index.

“Common Lisp 홈페이지.” n.d. Accessed June 20, 2024. https://lisp-lang.org/.

“Freshcode.” n.d. Accessed April 15, 2025. https://www.youtube.com/channel/UC9nbMjxB5hfIWj6v1EoQUoQ.

“Gaiwan / Heart of Clojure.” n.d. Accessed April 8, 2025. https://gaiwan.co/blog/why-clojure/.

neo. 2024. “Hy 1.0 – Python을 위한 Lisp Dialect.” September 23, 2024. https://news.hada.io/topic?id=16888.

———. 2025. “왜 Clojure인가?” February 25, 2025. https://news.hada.io/topic?id=19408.

Peter Seibel. 2005. Practical Common Lisp 실용적인 커먼 리스프. Berkeley, CA: Apress. https://gigamonkeys.com/book/.

“Xuchunyang/Elisp-Demos.” 2025. https://github.com/xuchunyang/elisp-demos.

NO_ITEM_DATA:book-lovingcommonlisp24

KEYWORDS: 리스프 lisp

bib

notes

CLOJURE 클로저

2023 풀스택 프레임워크와 JavaScript 그리고 Clojure

[2023-07-31 Mon 04:59]

풀스택은 전체 서비스 구현을 묶는 것. 프론트엔드는 자바스크립트로 변환. 노드의 생태계를 이어 받아야 하기 때문. 클로저는 자바 생태계를 이어 받아 동작.

노드나 디노나 엔진 위에서 동작. 이게 자바 가상 머신 보다 좋은 선택일까 의문. 그렇다면 호스트 측면에서도 유리. 동적 타입. 병행성. 이 부분은 선택의 여지가 없다.

그러면 왜 다른 방향을 보고 있었는가? Emacs 시스템에 대한 더 강력한 지지를 받고 싶었다. 디노 이글랏을 설정하며 경험을 쌓음. 구조적 편집도 마찬가지. 에빌 키들은 여전히 미궁이다. 엘독과 자동 완성 측면도 여전히 재미있는 포인트이다.

Spacemacs 레이어를 다 따라갈 필요 없다. 웹 개발 환경에서 알게 됨. 디노를 치우고 노드로 간다면 또 다르겠지만 설정이 필요한 부분은 스코드로 넘기는게 유리할 것. 메인 언어만 중심을 잡으면 좋을 것 같다. 그게 클로저이다. 이글랏으로 커버가 된다.

클로저 기술 컨설팅

  • [2025-04-15 Tue 17:07] 그러고 보니 이런 엔지니어 집단 그룹이 많이 보이네
Freshcode

(“Freshcode” n.d.)

We’re Freshcode, a team of engineers with proven expertise in functional programming, solution design, and product development. Welcome to our official channel on YouTube! Here, we talk about turning ideas into products and solutions using technologies like Clojure, JavaScript, .NET, and Elixir. Join us as we share real-life stories and expertise from our leaders and honored guests. With this channel, we aim to shed light on what problems businesses face in product development and how to find and develop solutions.

Gaiwan / Heart of Clojure

(“Gaiwan / Heart of Clojure” n.d.) Learn about Clojure, ClojureScript, Open Source, Software Design and Architecture

왜 Clojure 인가?

(neo 2025) neo 2025

[2025-04-08 Tue 14:55] 참고

Clojure 는 주류 프로그래밍 언어 중 하나가 아니며, 일부 사람들에게는 생소할 수 있음Clojure 의 주요 장점개발자 생산성 : Clojure 는 인터랙티브하고, 반복 작업이 적으며, 효율적인 개발 환경을 제공. 개발자들이 만족하면서 빠르게 제품을 출시할 수 있음장기적인 유지보수성 : Clojure 언어와 생태계는 성숙하고 안정적임. 높은 품질의 시스템을

Clerk - Interactive Note

ARCHIVE

#커뮤니티

RACKET 래킷

TL;DR

교육용으로 많이 쓰이는 스킴 방언으로, 리스프를 배우기 가장 편한 환경을 제공한다. 실제로 윈도우, 맥, 유닉스 계열에 다 호환되는 IDE 를 제공하며, 거기에 GUI, 네트워크 등 웬만한 라이브러리도 다 포함되어있고,(Batteries Included!) 실제 프로그래밍과 기본적인 개념은 비슷하면서, 노가다가 될 수 있는 부차적인 기능들을 단순화시킨 프로그래밍 교육용 모듈까지 따로 포함되어 있다. Realm of Racket 이라는 교재를 보면, 중고교생 대상의 기초적인 수준이긴 하지만 스킴 문법과 GUI, 네트워크 프로그래밍, 인공지능 등을 게임 프로그래밍 실습을 통해 겨우 300 페이지 이하의 분량으로 설명하고 있다! 사실, 리스프라는 언어 자체가 프로그래밍 언어를 만들기 편리한 언어이기도 하고, Racket 은 스킴의 저런 언어 자체의 확장성을 다소 극단적인 레벨로 끌어올린 언어이기에 가능한 것.

[2023-09-07 Thu 14:01] LISP 방언. 교육용 프로그래밍 언어로 최적. 툴과 문서 등 잘 갖춰져 있다. 이 녀석을 중심으로 프로그래밍 자료를 구축해서 리딩한다. 함수형 언어만 알면 된다. 모든 것을 할 수 있다. 툴은 일단 주는 걸로 한다. 따른 것을 건들지 않는다. 그래야 중심을 잡을 수 있다.

라코 raco fmt install

raco pkg install fmt

Documentation

[2023-09-07 Thu 14:02] 영어로 되어 있다. 아무튼 그렇다. 그냥 해보는 것 뿐이다.

OFF Translation

[2023-09-07 Thu 14:02] 한국어로 번역을 한다면 무엇을 해야 하는가? 어디에서 부터 해야 하는가? 다 해야 한다. 그 것 보다는 예제 중심으로 연습 코드를 경험해 보는 게 우선이다.

최신버전 바이너리 설치

[2023-09-07 Thu 13:48]

$ sudo bash racket-8.10-x86_64-linux-cs.sh
This program will extract and install Racket v8.10.
 
Note: the required diskspace for this installation is 681M.
 
Do you want a Unix-style distribution?
  In this distribution mode files go into different directories according
  to Unix conventions.  A "racket-uninstall" script will be generated
  to be used when you want to remove the installation.  If you say 'no',
  the whole Racket directory is kept in a single installation directory
  (movable and erasable), possibly with external links into it -- this is
  often more convenient, especially if you want to install multiple
  versions or keep it in your home directory.
Enter yes/no (default: no) > yes
 
Where do you want to base your installation of Racket v8.10?
  (If you've done such an installation in the past, either
   enter the same directory, or run 'racket-uninstall' manually.)
  1 - /usr/... [default]
  2 - /usr/local/...
  3 - ~/... (/root/...)
  4 - ./... (here)
  Or enter a different directory prefix to install in.
> 1
 
Target Directories:
  [e] Executables      /usr/bin (exists)
  [o] Libraries        /usr/lib/racket (exists)
  [s] Shared files     /usr/share/racket (exists)
  [c] Configuration    /usr/etc/racket (will be created)
  [d] Documentation    /usr/share/racket/doc (will be created)
  [a] .desktop files   /usr/share/applications (exists)
  [m] Man Pages        /usr/share/man (exists)
  [l] C Libraries      /usr/lib (exists)
  [h] C headers        /usr/include/racket (exists)
  [z] Compiled at lib? yes
Enter a letter to change an entry, or enter to continue.
 
Checking the integrity of the binary archive... ok.
 
Unpacking into "/usr/racket-tmp-install" (Ctrl+C to abort)...
Done.
 
Moving bin -> /usr/bin
Overwrite file "/usr/bin/drracket"?
  [y]es / yes to [a]ll / [n]o=abort > a
 
Moving collects -> /usr/share/racket/collects
Moving share/pkgs -> /usr/share/racket/pkgs
Moving doc -> /usr/share/racket/doc
Moving lib -> /usr/lib/racket
Moving include -> /usr/include/racket
Moving share/applications -> /usr/share/applications
Moving share -> /usr/share/racket
Moving etc -> /usr/etc/racket
Moving man -> /usr/share/man
Moving README -> /usr/share/racket/doc/README
Writing uninstaller at: /usr/bin/racket-uninstall...
Rewriting configuration file at: /usr/etc/racket/config.rktd...
Moving "compiled" in /usr/share/racket/collects to /usr/lib/racket/compiled/usr/share/racket/collects
Moving "compiled" in /usr/share/racket/pkgs to /usr/lib/racket/compiled/usr/share/racket/pkgs
Rewriting configuration file at: /usr/etc/racket/config.rktd...
 
Installation complete.
 

IDE

[2023-09-07 Thu 13:59]

Drracket

[2023-09-07 Thu 14:01] 이게 기본이다. 그래서 좋은 것이다.

VSCODE

[2023-09-07 Thu 14:01]

Emacs

[2023-09-07 Thu 14:02] 다음 문서에 자세히 설명되어 있다.

#이맥스 #래킷 #SICP

[2024-11-13 Wed 13:52]

  • 설치는 둠이맥스 모듈 사용
  • /home/junghan/sync/man/dotsamples/vanilla/hamacs-evil/ha-programming-scheme.org

Try It Out

Working for values?

(* 6 7)
42

Working for output?

(define str-1 "hello")
(define str-2 "world")
(define all (string-join (list str-1 str-2) ", "))
(display (string-titlecase all))
Hello, World

,#+results:

Hello, World

The interface is horrendously slow, as the :session doesn’t seem to work, and starting up a Racket REPL takes a long time.

SICP and Racket

If using Racket for SICP, install the SICP language:

raco pkg install --auto --update-deps sicp

We now can give it a #lang sicp (or better yet, use the :lang header) to define certain SICP-specify features:

이제 #lang sicp=(또는 =:lang 헤더를 사용하는 것이 더 좋습니다)를 지정하여 특정 SICP 지정 기능을 정의할 수 있습니다:

Let’s try this now:

(inc 42)

SCHEME 스킴

#이맥스통합개발환경: #스킴 여기서 기본 설정에 대해서 정리 한다.

EMACSLISP 이맥스리스프

Lisp 프로그래밍을 익혀야 한다.

[2023-11-14 Tue 06:46]

그 시작은 Emacs Lisp 이다.

[2023-11-14 Tue 06:46]

왜? 매일 만지고 있으니까. 지금 필요하니까

HYLANG 하이랭

Hy 1.0 – Python을 위한 Lisp Dialect

(neo 2024)

  • neo
  • 12년간의 개발과 실사용을 거쳐 Hy 1.0.0이 출시됨Hy는 Python에 내장된 Lisp 방언임Lisp 계열의 다중 패러다임 범용 프로그래밍 언어Python의 대안 구문으로 구현됨Python에 비해 다양한 새로운 기능, 일반화 및 구문 단순화를 제공함다른 Lisp에 비해 Python의 내장 기능과 서드파티 Python 라이브러리에 직접 액세스할 수 있음
  • 2024
  • 12년간의 개발과 실사용을 거쳐 Hy 1.0.0이 출시됨
  • Hy는 Python에 내장된 Lisp 방언임
    • Lisp 계열의 다중 패러다임 범용 프로그래밍 언어
    • Python의 대안 구문으로 구현됨
    • Python에 비해 다양한 새로운 기능, 일반화 및 구문 단순화를 제공함
    • 다른 Lisp에 비해 Python의 내장 기능과 서드파티 Python 라이브러리에 직접 액세스할 수 있음
    • 명령형, 함수형 및 객체 지향 프로그래밍 스타일을 자유롭게 혼합할 수 있음
  • GN⁺의 의견
    • Hy는 Python과 Lisp의 장점을 결합한 흥미로운 프로그래밍 언어임. Python의 풍부한 생태계와 라이브러리를 활용하면서도 Lisp의 강력한 기능과 유연성을 제공하여 개발자의 생산성을 높일 수 있음.
    • 그러나 Hy는 아직 널리 사용되지 않는 언어이므로, 학습 자료와 커뮤니티 지원이 부족할 수 있음. 또한 기존 Python 코드와의 호환성 문제가 발생할 수 있으므로 주의가 필요함.
    • Hy와 유사한 개념을 가진 다른 언어로는 Clojure와 Racket 등이 있음. 이들은 Lisp 계열의 언어로서 함수형 프로그래밍과 매크로 등의 기능을 제공하며, JVM이나 자체 런타임 위에서 동작함.

관련링크

”Common Lisp 홈페이지”

(“Common Lisp 홈페이지” n.d.)

“aimacode/aima-lisp: Common Lisp implementation of algorithms from Russell And Norvig’s “Artificial Intelligence - A Modern Approach""

“Practical common lisp 실용적인 커먼 리스프” Peter Seibel 2005

“Loving Common Lisp or the Savvy Programmer’s Secret Weapon” 마크 왓슨 2024

(NO_ITEM_DATA:book-lovingcommonlisp24)

“PAIP: Paradigms of AI Programming with Common Lisp” 피터 노빅 2022

  • Paradigms of AI Programming: Case Studies in Common Lisp (ISBN 1-55860-191-0) is a well-known programming book by Peter Norvig about artificial intelligence programming using Common Lisp.

(피터 노빅 2022)

xuchunyang/elisp-demos

(“Xuchunyang/Elisp-Demos” 2025)

  • Chunyang, Xu

  • Demonstrate Emacs Lisp APIs

  • 2025

  • elisp-demos—elisp-demos 이 파일을 읽어서 봐라

  • elisp-demos—elisp-demos

    여기에 lisp/demos.org 둠이맥스 예제 파일이 있다.

    • ”~/sync/org/notes/20240926T170706—elisp-demos__emacslisp_notes.org”