검색어(search term):
--- 검색결과가 없습니다. ---
--- 검색결과: 건 ---
"One of the nice things about getting older is that you come to understand that you can integrate multiple aspects of your life together. When you're young, you think everything has to be binary, as that's exactly how you feel at that age".
- Min Jin Lee
"커먼리습 ASDF 불러오기 편하게 하기" 대모험
ASDF와 system definition file 검색의 정석
이전에 ASDF을 이용하여 커먼리습 프로젝트의 의존성, 시스템을 로딩하기 에 대해서 설명한 적이 있었다.
이전에 다룬 내용은 정석적으로 $HOME/common-lisp
디렉토리에 .asd
파일을 심볼릭링크를 걸고, (asdf:load-system ..)
을 시도하는
내용이었었다.
Prototyping등 더 편안하게 혼자 코딩을 할 때는…
혼자 커먼리습 코딩을 하면서, 나는 더 간단하게 프로젝트를 시작하는 방법을 선호한다.
커먼리습이 파일 이름이나 경로에 대해서 의존하는 것이 아니고, 컴파일시점, 로딩시점에 순서에 따라 로딩해서 최종적으로 컴파일하여 적재한 결과 이미지를 더 중요하게 여기기 때문에, 그리고 그런 컴파일, 빌드, 로딩과 같은 모든 단계들 자체도 커먼리습 표현식 그자체로 동작하기 때문에 그냥 하나의 소스파일을 섹션별로 나눠서 작업하면 편리하다.
…CommonLisp (w/o LOOP-macro) / LeetCode "1614. max nesting depth of the parentheses"
어제 작성한 LOOP매크로을 이용한 구현 을 풀어서, 만약 LOOP매크로가 없었더라면 어떻게 짰을지 작성해봤다.
|
|
여전히 타입을 지정해서 자동으로 타입추론, 최적화 하도록 했다.
그런데 여전히 dotimes
, when
, incf
, max
같은 커먼리습
HyperSpec에서 표준에 포함시킨 매크로 등을 사용했다. 물론 이런 것들도
다 풀어서 작성해도 되겠지만 별 의미는 없을 것 같아서.
CommonLisp / LeetCode "1614. max nesting depth of the parentheses"
작성한 코드
코드 의도
- 우아한 코드보다는 공간복잡도가
O(1)
이고 싶었다.
Edit
-
SBCL에 맞춰 코드에 타입을 지정해줘봤다.
- 결과 어셈블리 코드가 조금 짧아졌다.
Ping 19/Oct/2020
가을
도르트문트 집은 꽤 평화로웠다. 날씨가 좋은 날도 많고 공기도 맑았다. 한가한 주말이 되면 창문을 열고 잔디가 깔린 정원을 보며 담배를 태우고 커피를 내려 마셨다.
그리고 지하세탁장에 빨래를 돌려놓고 핑크플로이드의 다크사이드 오브 더 문 앨범을 좋은 스피커로 틀어놓았다. 잘 어울렸다.
서울의 변두리에서 맞는 이번 가을은 그런 기분이다. 조용하고 가을 햇살과 공기가 맑아졌다.
그리고 핑크플로이드를 그렇게 여유롭게 들을 수 있었다.
Ping (2nd) 17/Oct/2020
올해 초 cl-state-machine 라이브러리를 만들어 공개한 이후로 커먼리습을 쓰지는 않았다.
다른 직업상 쓰는 언어들만을 쓰고 오픈소스와 개인적으로 만들고 싶은 프로젝트를 위해서 쓰는 언어인 커먼리습은 미뤄두었었다.
다시 커먼리습을 해야겠다고 생각이 들었다. 개인적으로 만들고 싶은 프로젝트도 있고, 그 프로젝트를 위해서 프론트엔드를 만드는데 React와 Vue을 써보고 이해하고 있어도 쓰고 싶지는 않기 때문이다.
사실 커먼리습은 그렇게 문법이 예쁘지도, 멋진 React와 같은 멋진 프레임웍이나 최신의 유행하는 라이브러리들을 모두 갖고 있지도 않다.
HyperSpec을 읽다 보면 아주 쉽게 정의되어 있는 키워드들이 일관성이 있지도, 지금 시대의 관점에서 보기에 익숙한 현대적인 용어들을 사용해서 이름을 지어놓지도 않았다.
…