우선 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-[" . paredit-wrap-square)
("M-{" . paredit-wrap-curly))))
ob-racket 설정
(use-package ob-racket
:straight (:host github :repo "karohani/ob-racket" :branch "master")
:after org
:pin manual
:config
:init (cl-pushnew '(racket . t) load-language-alist)
)
(define (fact-iter product counter max-count)
(if (> counter max-count)
product
(fact-iter (* counter product)
(+ counter 1)
max-count)))
(fact-iter 1 1 4)