Emacs-lisp 자료형

출력하기 print("이렇게 출력합니다") (message "이렇게 출력합니다") 이렇게 출력합니다 emacslisp-배워보기 표현식 이해하기 리스트 형태의 표현식이 계산될 때 좌에서 우로 계산 되며 첫번째 원소는 함수의 정의로 나머지 원소는 인자들로 계산된 후 함수를 호출하게 된다. 호출된 함수가 리턴하는 값을 그 표현식의 값(value)라고 부른다. (message "hello workd") hello workd (message "hello: %d" (+ 1 2)) hello: 3 메시지는 “hello: %“와 3을 argument로 받아 실핵된다. 심벌 이해하기 자신의 그대로 값으로 계산되지 않은 message + 를 심벌이라고 부른다....

November 28, 2019 · VERITAS

SICP :: 설치방법(MacOs)

우선 brew로 Racket을 설정하고 racket에서 제공하는 SCHEME BatteryPack을 설치한다. brew install --cask racket raco pkg install sicp racket-mode 설정 emacs에서 문제를 풀기위해서 Paredit과 racket-mode를 설치하고 ob-racket을 설치한다. (use-package racket-mode :config (add-hook 'racket-mode-hook (lambda () define-key racket-mode-map (kbd "<f5>") 'racket-run) ) ) (use-package paredit :ensure t :config (dolist (m '(emacs-lisp-mode-hook racket-mode-hook racket-repl-mode-hook)) (add-hook m #'paredit-mode)) (bind-keys :map paredit-mode-map ("{" . paredit-open-curly) ("}" . paredit-close-curly) ) (unless terminal-frame (bind-keys :map paredit-mode-map ("M-[" ....

December 07, 2022 · 전파고양이

@angular/cli와 같은 At(@)이 포함된 package 이름은 왜 그럴까?

When you sign up for an npm user account or create an Org, you are granted a scope that matches your user or Org name. You can use this scope as a namespace for related packages. A scope allows you to create a package with the same name as a package created by another user or Org without conflict. 당신이 NPM user 계정을 만들거나, org를 만들면 사용자 또는 org이름과 일치된 scope가 제공된다....

December 04, 2022 · 전파고양이

ytd-dl

macos 설치 방법 # homebrew로 설치하기 brew install yt-dlp/taps/ytldp 아래와 같이 -F {URL} 옵션을 이용하면 다운로드 가능한 포맷을 얻을 수 있다. yt-dlp -F https://www.youtube.com/watch?v=kPTvTnKqXRY 만약에 내가 여기서 Mp3만 얻고 싶다면 아래와 같이 –audio-format mp3 -x {url}을 사용하면 된다. yt-dlp --audio-format mp3 -x https://www.youtube.com/watch\?v\=kPTvTnKqXRY

November 19, 2022 · 전파고양이

Racket 설치 및 emacs 개발 환경

https://docs.racket-lang.org/pollen/Installation.html 아래와 같이 환경변수를 bashprofile에 추가. export PATH="/Applications/Racket v{설치한 라켓의 버전}/bin:$PATH" emacs 설정 (use-package racket-mode :config (add-hook 'racket-mode-hook (lambda () define-key racket-mode-map (kbd "<f5>") 'racket-run) ) ) (use-package paredit :ensure t :config (dolist (m '(emacs-lisp-mode-hook racket-mode-hook racket-repl-mode-hook)) (add-hook m #'paredit-mode)) (bind-keys :map paredit-mode-map ("{" . paredit-open-curly) ("}" . paredit-close-curly)) (unless terminal-frame (bind-keys :map paredit-mode-map ("M-[" . paredit-wrap-square) ("M-{" . paredit-wrap-curly)))) (provide 'init-racket) racket file을 생성하고 아래와 같이 작성한 뒤에 F5를 눌렀을 때 잘 되면 문제 없음...

November 18, 2022 · 전파고양이

finalcut :: 자막 편집 워크 플로우

finalcut :: 영상에 자막 넣기 caption file > import > caption 자막 편집하기 이 상태에서 Ctrl + shift + c를 입력하면 와 같이 자막 편집 창이 뜹니다. 그리고 편집하고 ESC키를 입력하면 창이 닫히면서 편집을 이어갈 수 있습니다. 이걸 끝까지 반복하면 됩니다.

November 17, 2022 · karo

Generic Recursive Type Bound 이해하기(Item30)

문제 상황을 이해하기 위해서 다음과 같은 문제를 풀어 보자 interface Fruite { Integer getSize(); } // apple.java class Apple implements Fruit, Comparable<Apple> { private final Integer size; public Apple(Integer size) { this.size = size; } @Override public Integer getSize() { return size; } @Override public int compareTo(Apple other) { return size.compareTo(other.size); } } // orange.java class Orange implements Fruit, Comparable<Orange> { private final Integer size; public Orange(Integer size) { this....

November 16, 2022 · 전파고양이

Hugo :: 정적 블로깅 방법

설치 방법 brew install hugo 디렉토리 구조 만들기 hugo new site {blog_name} git submodule add -b master https://github.com/karohani/karohani.github.com/ public git submodule add https://github.com/budparr/gohugo-theme-ananke.git google에서 사이트가 검색 되도록 하기 Google Search Console에 SiteMap에 등록 https://www.google.com/webmasters 파일을 다운 받은 뒤에 static 폴더 안에 넣고 검증 버튼을 누르면 완료된다. DONEHugo Directory 구조 설명 The following is a high-level overview of each of the directories with links to each of their respective sections within the Hugo docs....

November 16, 2022 · 전파고양이

Emacs Lisp 이해하기

출력해보기 String 다루는 방법에 대해서 설명하라, 2가지 함수 string <-> int join-string regex memq progn org-add-link-type sort-lines Emacs Lisp Functions buffer display-buffer display-buffer-at-buttom display-buffer-no-window Overriding the default placement actions display-buffer-alist emacs-lisp으로 이것저것 {{c1::dfasdfasdlfij}} 출력해보기 M-x ielm (message "하이 %d" (+ 2 3)) #'(1 2 3) (cons 1 '(2 3 4)) ;; (1 2 3 4) (let ((a 2) (b 3)) (message "%s" (+ a b)) ) (let (a b) (setq a 2) (setq b 3) (message "%s" (+ a b)) ) ;; (message a) // let은 local variable ;; (let ((a 2) (b 3) (c (+ a b)))) // error 심볼은 각각 평가 되므로 초기화 단계에서 서로 참조 불가 (let* ((a 2) (b 2) (c (+ a b))) (message "%s" (+ a b c)) ) String 다루는 방법에 대해서 설명하라, 2가지 함수 (split-string "123123 123123 123123" " ") ;; ("123123" "123123" "123123" (concat "a" "b") string <-> int join-string regex memq (memq 1 '(7 1 2 3)) (memq ELT LIST)로 정의 되어 있고, ELT가 LIST의 엘리먼트라면 non-nil을 반환한다....

November 12, 2022 · 전파고양이

clojure :: 환경 설정

환경 설정 brew install clojure/tools/clojure

November 10, 2022 · 전파고양이