요즘 밤마다 하는 일

리스프로 짠 피보나치 코드 (테스트 안 해봄)

밤마다 10시에 학원 끝나고 돌아오는 길에 틈틈히 이 https://www.amazon.com/ANSI-Common-LISP-Paul-Graham/dp/0133708756
책으로 버스에서 리스프 공부를 하고 있습니다. 400페이지의 절반 쯤 봤네요.
부족한 시간이지만 그래도 특이하게 재미있어서 꾸준히 보고 있습니다. 시간이 충분하다면 여기다가도 일부 정리해서 올리고 싶지만 그렇지가 못해서 아쉽게 되었습니다.

개발환경이 사실 문제인데, 일단은 VS Code에 리스프 플러그인을 깔아서 사용하고 있지만 VS Code로 C 개발하는 것만은 못하고 기능이 조금 부족합니다. 조금 친절하고 SBCL이랑 연동이 잘 되는 개발 도구가 있었으면 좋았겠다는 느낌입니다.

P.S. 리스프 꽤나 근본있는 언어더군요. 제가 포트란 77을 사용할 수 있는데, 알아보니까 리스프가 원래 포트란 패키지로 출발한 거의 1년 차이밖에 안 나는 언어였답니다.

3 Likes

왜 안 이맥스요

2 Likes

Vim 키 바인딩을 쓰고 계시겠죠? 그렇죠?

2 Likes

왼쪽 아래에 보이는 --INSERT–가 vim 익스텐션이랍니다

LISP은 블록 시스템, 블록 추상화, 리스트 별 색칠 등 이제까지 굉장히 편한 에디팅 UI/UX 가 많이 연구되었지만 Emacs를 제외한 LISP 에티터가 오래전에 사망했습니다. 그런데 Emacs는 LISP 초기부터 있었던 에디터고, 그 자체로 LISP으로 동작하기에 그 고유의 에서 나오는 기능들이 많습니다. 애초에 LISP에 맞는 코드 색칠이나 편집 기능은 이맥스 이외의 IDE에서는 찾기 힘듭니다. (Cursive가 있긴 하지만 그건 Clojure only) 그리고 명령 하나만으로 코드 일부를 실행한다거나 에러가 발생했을 때 코드를 핫스왑하는 REPL 중심 코딩은 왜 LISP이 원조인 만큼 강력한데 다른 에디터는 이 기능을 쓰지 못하는 경우가 많습니다. 따라서 LISP 계열 언어 사용자들은 편해서든 울며 겨자먹기로든 Emacs 를 씁니다. Emacs 없이 LISP을 하면 APL을 쿼티 키보드로 하는 것만큼이나 불편합니다. 오죽하면 LISP 계열 언어를 쓰는 프로그래머 상당수가 Emacs LISP의 단점을 몇십 문단씩 나열하면서도 Emacs LISP를 다룰 줄 아는 사람이 많을까요.

추가하자면 Common Lisp를 쓰던 시절엔 LISP를 애초에 지원하는 에디터가 CL 자체 에디터 아니면 Emacs 였을겁니다.

TL;DR: 왜않이맥?

굳이 Emacs 안 하시고 다른 에디터를 써서 다른 LISP 방언을 쓸 때 삽질을 하고 싶으시다면 말리지는 않습니다.

고로 링크

2 Likes

4인덴트에 닫는 괄호 상태가
:woman_facepalming:

어디가서 이러면 리슾 덕후들한테 처맞습니다
솔직히 저도 심한 욕 참고 있습니다

인덴트는 스페이스로 2 인덴트
닫는 괄호는 한 줄에 다 쓰는게 리슾 국룰입니다

2 Likes

코드는 이제야 봤습니다.

할많하않

많으면 해 주세요 시원하게 :slight_smile:

전 버그 하나 잡았네요. 푸시를 서브루틴에 박으면 (1 1 2 1 1 2 3 1 …) 이런 식으로 호출되서 fibseq 에서 그 기능을 구현해야 되는데 실수했네요.

1 Like