Programming 530

(Racket) 매크로 정복하기

Racket 매크로는 hygienic macro인데, 쓰기 더 어려운 면이 있다. s-expression을 데이터로 바로 조작하기가 어렵다. syntax->datum과 datum->syntax를 하여 번거롭게 해야 한다. (` 대신 #`를 사용하면 datum->syntax를 안 해도 되기는 하다.) 그러던 와중, Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot 에서 Racket의 define-syntax-rule 예제를 보게 되었다. Lisp의 defmacro와 비슷하게 구현하였는데, 다음과 같다: (define-syntax-rule (rpn3 arg1 arg2 op) (eval ‘(,op ,arg1 ,arg2))) 위 코드는 REPL에서는..

Programming 2023.10.30

VS Code에서 Common Lisp 프로그래밍

Common Lisp - Visual Studio Marketplace Common Lisp - Visual Studio Marketplace Extension for Visual Studio Code - Common Lisp language support for VS Code marketplace.visualstudio.com 확장을 추천한다. hover documentation (Common Lisp HyperSpec만), jump to definition 등이 지원된다. 초보자에게는 Emacs + SLIME보다 사용하기 쉽다. 사용자 정의 함수에 대해 hover documentation이 안 되는 점이 아쉽다. 자동 들여쓰기가 안 되는 점이 아쉽다. 스크린샷: Common Lisp HyperSpec..

Programming 2023.10.26

C, C# - 콘솔 창 출력 인코딩 변경

SetConsoleOutputCP 함수 - Windows Console | Microsoft Docs SetConsoleOutputCP 함수 - Windows Console 호출 프로세스와 연결된 콘솔에서 사용하는 출력 코드 페이지를 설정합니다. docs.microsoft.com Console.OutputEncoding 속성 (System) | Microsoft Docs Console.OutputEncoding 속성 (System) 콘솔이 출력을 쓰기 위해 사용하는 인코딩을 가져오거나 설정합니다. docs.microsoft.com [C++] 윈도우 콘솔에서 UTF-8 출력하기 (tistory.com)

Programming 2023.10.05