ãã¾ã©ãã®Clojureã®ã¯ãããã
Clojure 1.9ããããããClojureã®å§ãæ¹ã大ããå¤ãã£ãã®ã§ããããã®è¾ºããã¾ã¨ããè¨äºãè¦å½ãããããã§ã«Clojureããã£ã¦ã人ããç¥ããªãç¶æ ã£ã½ãã®ã§ãæ¥ãã§æ¸ãã¦ã¿ã¾ããã
大ããå¤ãã£ãã®ã¯ã clojure
ããã³ clj
ã¨ããã³ãã³ããå°å
¥ããããã¨ã§ããããã¾ã§ã¯Clojureã®å®è¡ã«ã¯ Leiningen
ã®ãããªãã«ããã¼ã«ã使ãã®ãä¸è¬çã§ãã¹ã¯ãªããçãªã³ã¼ããæ¸ãã®ã«ã¯åãã¦ãªãå°è±¡ã§ãããã1.9ããã¯ã clojure
ã³ãã³ãã« .clj
ãã¡ã¤ã«ã渡ãã¨å®è¡ã§ããããã«ãªãã¾ãããã¾ããã³ãã³ããç¨æããããã¨ã§ãã·ã§ã«ã»ã¹ã¯ãªããåé ã« #!
㧠clojure
ã³ãã³ãã¸ã®ãã¹ãæ¸ããã¨ã§ãã·ã§ã«ã¹ã¯ãªããã¨ãã¦Clojureã³ã¼ããè¨è¿°ã§ããããã«ãªãã¾ããã
ãã®äºã¤ã®ã³ãã³ããã¤ã³ã¹ãã¼ã«ããæé ããç°å¢ãã¨ã«ç¨æããã¦ãã¾ãã
ã¤ã³ã¹ãã¼ã«
Mac
homebrewã«å¯¾å¿ãã¦ã¾ãã
brew install clojure
Linux
ã¾ã apt-getãyumã¨ãã«ã¯å¯¾å¿ãã¦ãã¾ããããã¤ã³ã¹ãã¼ã«ã»ã¹ã¯ãªãããç¨æããã¦ããã®ã§ããããå®è¡ããã°ç°¡åã«ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
ãã¡ãã®ãã¼ã¸ã«æ¸ãã¦ããï¼è¡ã®ã³ãã³ããå®è¡ããã¨ãClojureãã¤ã³ã¹ãã¼ã«ããã¾ãã
https://clojure.org/guides/getting_started#_installation_on_linux
Windows
æ®å¿µãªãããã¾ã æä¾ã§ãã¦ããªãããã§ãã ã¨ã¯ãããclojureã¯åãªãjarãã¡ã¤ã«ãªã®ã§ãclojure.jarãæåé ç½®ãããã¨ã§ãªãããã¡ããå®è¡å¯è½ã§ãã
ããããMicrosoftèªèº«ãWindowsã§åãLinuxç°å¢ãæä¾ãã¦ããã®ã§ããã£ã¡ã§å®è¡ããæ¹ãç°¡åãªããã«æãã¾ãã
REPL
ãªã«ã¯ã¨ããããREPLã§ãã
Clojureãã¤ã³ã¹ãã¼ã«ããã¨ãclj
ã³ãã³ãã¨clojure
ã³ãã³ãã®ï¼ã¤ã®ã³ãã³ãã使ããããã«ãªãã¾ãã
clj
ã³ãã³ãã®ã»ããREPLå®è¡ç¨ã³ãã³ãã§ããåã«clojure REPLã®å®è¡ã ãã§ã¯ãªããREPLä¸ã§ã®ã³ãã³ããã¹ããªæ©è½ãªã©ããªã³ã«ãªããããã»ããã¢ãããã¦ããã¾ãã
clojure
ã³ãã³ãã¯.cljãã¡ã¤ã«ãå®è¡ããããã®ã³ãã³ãã§ãããã¡ããããã®ã§ãclojureãã¤ã³ã¹ãã¼ã«ããã¦ããç°å¢ã§ããã°ã #!/usr/bin/env clojure
ãã¹ã¯ãªãããã¡ã¤ã«ã®å
é è¡ã«æ¸ããã¨ã§ãã·ã§ã«ã¹ã¯ãªããã®ããã«clojureããã°ã©ã ãå®è¡ãããã¨ãã§ãã¾ãã
ã¨ããããã§ãclj
ã³ãã³ããå®è¡ããã¨ãClojure REPLãèµ·åãã¾ãã
(+ 1 2) ;;=> 3 (require '[clojure.string :refer [split upper-case]]) ;=> nil (->> (split "aaa,bbb,ccc" #",") (map upper-case)) ;=> ("AAA" "BBB" "CCC")
Clojureã®é¢æ°ãè¦ãã¦ããã¨ãã¡ãã£ã¨ããè¨ç®ã¨ãã¯REPLã§ããã£ã¨ããã°ã©ã æ¸ããããã¦ãã¾ãã¾ãã
使ãçµãã£ãããCtrl+dã§çµäºã§ãã
ã¹ã¯ãªãããæ¸ã
Clojure 1.9ããã¯ãClojureèªä½ã«ä¾åã©ã¤ãã©ãªãå¦çããæ©è½ãçµã¿è¾¼ã¾ãã¾ããã1.8ã¾ã§ã¯ãLeiningenãªã©ã®ãã«ããã¼ã«ãå¿ è¦ã§ããããå¿ è¦ãªãã¨ããä¾åã©ã¤ãã©ãªã®èªåãã¦ã³ãã¼ããã ããªã®ãªããClojureåä½ã§ã§ããããã«ãªã£ãã®ã§ãã
ãã¡ããããã«ããã¼ã«ã«ã¯ä¾åæ§ç®¡ç以å¤ã«ãããããªæ©è½ãããã¾ãããã¡ãã使ãããå ´åï¼ãããã¸ã§ã¯ããè¦æ¨¡ã«ãªãã¨å¤§æµã¯å¿ è¦ã§ãããï¼ã¯ãClojureåä½ã§ã¯é£ããã®ã§ãããªãã«ãã«ããã¼ã«ã使ãã¾ããããä¸çªã¡ã¸ã£ã¼ãªã®ã¯ Leiningen ã§ãããã¡ããã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãããããã¾ãï¼Windowsç¨ã®batãã¡ã¤ã«ãããï¼
ãã¦ãã¡ãã£ã¨ããã¹ã¯ãªãããæ¸ããããã©ããã®ããã«ã¯å¤é¨ã©ã¤ãã©ãªãå¿ è¦ã ãã¨ããã±ã¼ã¹ã¯ããããã¾ãããã¨ãã°Clojureã§httpã¢ã¯ã»ã¹ãå¿ è¦ãªå ´åãclj-http ã¨ããæåãªã©ã¤ãã©ãªã使ããã¨ãå¤ãã§ãããå½ç¶ããã¯ãå¥éç¨æããå¿ è¦ãããã¾ããã
Clojure 1.9ã«ã¯ã deps.edn
ã¨ããç¹æ®ãªãã¡ã¤ã«ãã«ã¬ã³ãã»ãã£ã¬ã¯ããªã«é
ç½®ãããã¨ã§ãå¿
è¦ãªä¾åã©ã¤ãã©ãªãèªåãã¦ã³ãã¼ãããæ©è½ã追å ããã¾ããã
clojureã³ãã³ããå®è¡ããã¨ãã«ãã«ã¬ã³ãã»ãã£ã¬ã¯ããªã«deps.ednãããã°ããã®ä¸ã«è¨è¿°ãããä¾åã©ã¤ãã©ãªããã¹ã¦ãã¦ã³ãã¼ããã¦ãããã¹ã¯ãªãããå®è¡ãã¾ããã¤ã¾ããã¹ã¯ãªããã¨ãã¦æ¸ããclojureããã°ã©ã ï¼ããã¹ããã¡ã¤ã«ï¼ã¨ãã£ããã«deps.ednãé ããã¨ã§ãã¹ã¯ãªããããå¤é¨ã©ã¤ãã©ãªãå©ç¨ãããã¨ãã§ãã¾ãã
deps.ednã®è§£éã¯ãclojure
ã³ãã³ãå®è¡æã ãã§ãªããclj
ã³ãã³ãå®è¡æã«ãè¡ããã¾ãã®ã§ãREPLã§ä½æ¥ããããã©ããã®ä½æ¥ã«ã¯å¤é¨ã©ã¤ãã©ãªãå¿
è¦ãã¨ããã¨ãã«ããããã£ã¨deps.ednãæ¸ãã°ãREPLå
ã§å¤é¨ã©ã¤ãã©ãªã使ããã¨ãã§ãã¾ãã
deps.ednã¯æ¬¡ã®ãããªãClojureã®ãããææ³ã§æ¸ããããã¡ã¤ã«ã§ãã
{:deps {clj-http {:mvn/version "3.9.0"}}}
ãã®ãããªãã¡ã¤ã«ãããã¦ãããã£ã¬ã¯ããªã§clj
ã³ãã³ããå®è¡ãã¦ã¿ã¾ããããREPLèµ·åæã«clj-httpã®ãã¦ã³ãã¼ããè¡ããã¾ãã
ã¡ãã£ã¨ãhttpæ¥ç¶ã試ãã¦ã¿ã¾ããããã
(require '[clj-http.client :as http]) ;=> nil (http/get "https://google.co.jp/" {}) ;=> Googleãã¼ã¸ã®HTMLããã¹ã
ãããªæãã§ãå¿ è¦ãªã©ã¤ãã©ãªã使ã£ã¦REPLã§ä½æ¥ã§ããããã§ãã
deps.ednã使ã£ã¦ããå°ãè¤éãªããã°ã©ã ãçµã
1ãã¡ã¤ã«ã¨ããã»ã©å°ããã¯ãªããã©ããã«ããã¼ã«ä½¿ãã»ã©ã§ããªãã使ãæ¨ã¦ã®ãã¼ã«ããã°ã©ã ãä½ããã¿ãããªãã¨ãããã§ããããClojureã ã¨ãããã°ã©ã ã¯åå空éã«åå²ãã¦æ¸ãã¦ããã®ãæ®éã§ãããããã¨ãã¡ã¤ã«ãè¤æ°ã«ãªãã¾ãããåå空éã«é層ãããå ´åã¯ããã£ã¬ã¯ããªãå¿ è¦ã§ãã
deps.ednã¨åãå ´æã« src
ã¨ãããã£ã¬ã¯ããªãããã°ããã®ä¸ã«ã½ã¼ã¹ãã¡ã¤ã«ãé
ç½®ããã¦ãããã®ã¨è§£éãã¾ããsrcã®ä¸ã«ãåå空éã«åããããã£ã¬ã¯ããªé層ãä½ãã°ãã¡ããã¨ã½ã¼ã¹ãè¦ã¤ãåºãã¦ããã¾ãã
- deps.edn - helloworld.clj - src/ - util/ - string.clj - net.clj
ä¸è¨ã®ããã«é
ç½®ããã°ããã®ããã°ã©ã ã¯ã helloworld.clj
ã¨ããå®è¡ç¨ã¹ã¯ãªããã¨ã¯å¥ã«ã
- util.string
- util.net
ã®ï¼ã¤ã®åå空éã追å ãããããã°ã©ã ã¨ãªãããã§ãããã¨ãã°ã helloworld.clj
ãããrequire
ã使ã£ã¦ãutil.string
ãutil.net
åå空éãå©ç¨ãããã¨ãã§ãã¾ãã
Clojureåä½ã§ããdeps.ednã¨çµã¿åããããã¨ã§ãã¡ãã£ã¨è¦æ¨¡ã®å¤§ããã®ããã°ã©ã ã§ããä½ããã¨ãã§ããããã§ãã
ã¨ãã£ã¿ãç¨æãã
Clojureã¯LISPç³»ã®è¨èªã§ãã®ã§æ¬å¼§ãå¤ç¨ãã¾ãããä¸ã®LISPerãã¡ãã©ãæ¬å¼§ãæ±ã£ã¦ããã¨ããã¨ãæ¬å¼§ã®å¯¾ããè¦ã¥ãããã®ãã¨ãã¦ã§ã¯ãªãããããå©ç¨ãã¹ããæ§é ãã¨æãã¦ãã¾ããå ¨ã¦ãæ¬å¼§ã§å²ããã¦ããã®ã ãããæ¬å¼§åä½ã§ç§»åãããã«ãããããã§ãããå°ç¨ã®ã¨ãã£ã¿æ©è½ã使ã£ã¦ãã¾ãããã®æä½ã«æ £ããã¨ãæ¬å¼§ã«ã¯ãããããããã¿ãæããã®ã§ãã
Clojureããã°ã©ãã¯ãã¨ãã£ã¿ã®åã使ã£ã¦ãæ¬å¼§ãå·§ã¿ã«å©ç¨ãã¾ãããã ã®ããã¹ãã¨ãã£ã¿ã§æ¬å¼§ãæ±ãã®ã¯ã誰ã§ãã¤ãããã®ã§ããããã¯ãä»ã®è¨èªã§ãåãã§ããããªãã¿ã®è¨èªããä½ã®ãµãã¼ãããªãããã¹ãã¨ãã£ã¿ã§æ¸ããã¨ããã¨ãçµæ§å¤§å¤ãªã¯ãã§ãã
ã¾ããæ¸ãã¦ããããã°ã©ã ãREPLã使ã£ã¦ãã£ã¨åä½ç¢ºèªãã¤ã¤æ¸ãã¦ãããã¨ããã¹ã¿ã¤ã«ãã¡ã¸ã£ã¼ãªã®ããããã¨ãã£ã¿ããç°¡åã«REPLãèµ·åããããREPLã«ã½ã¼ã¹ãéãè¾¼ãã ããREPLããä½æä¸ã®ããã°ã©ã ã®åå空éã«ã¢ã¯ã»ã¹ãã¦é¢æ°ãå®è¡ããããããã¸ã§ã¯ãå ã®é¢æ°ãæ¢ãããããããããã°ãIDEçãªæ©è½ã欲ããã§ãã
ãããã®ãµãã¼ããªãã«Clojureã³ã¼ããæ¸ãã®ã¯ãã¯ã大å¤ã§ããã ã®ããã¹ãã¨ãã£ã¿ã§Javaãæ¸ãçãªããã©ããããã¾ããã ãããClojureããµãã¼ãããã¾ã¨ããªã¨ãã£ã¿ãç¨æãã¾ãããã
Clojureã§ãã£ã¨ãã¡ã¸ã£ã¼ãªéçºç°å¢ã¯
Emacs + CIDER
ã§ããã¨ãã£ã¿ã¨ãã¦emacsãããã®ãã©ã°ã¤ã³ã®CIDERãIDEæ©è½ã¨ãã¦éçºãã¾ãã
ãããEmacsã¯å¾æãããªããã©Vimã¯ä½¿ãããã¨ããæ¹ã ã¯
Spacemacs + CIDER
ã§ããSpacemacsã¯Vimãã¼ãã¤ã³ãã§ä½¿ããemacsã®ãããªãã®ã§ãCIDERã使ãã¾ãã
ããããã©ã¡ããå¿å¾ããªããã¨ããæ¹ããããã°ã©ã è¨èªãã¯ãããã®ã«EmacsãVimã®ãããªè¤éãªã¨ãã£ã¿ãè¦ããã¨ããããå§ããªãã¨ãããªããã¨ããã®ã¯ãã¾ãã«ããã¼ãã«ãé«ãã¨æãã¾ãã
ãªã®ã§ãç§ã®ä¸æ¼ãã¯ãæè¿ããããªè¨èªããµãã¼ããã¦ããã¨ã§ã¦ã¼ã¶ã¼ã®å¤ããIntelliJ IDEAã使ããã¨ã§ããIDEAã®ãã©ã°ã¤ã³ã¨ã㦠Cursive ã¨ããClojureéçºæ¯æ´ãã©ã°ã¤ã³ãããã¾ãããã¡ãã¯ãã¸ãã¹ã§ä½¿ãå ´åã¯ææã§ããããªã¼ãã³ã½ã¼ã¹éçºãå¦ç¿ç¨ã¨ã§ã¯ç¡æã§ããææçã¯ãå人ã«ç´ä»ãã©ã¤ã»ã³ã¹ã ã¨99ãã«ã§ããä¼æ¥å¥ç´ã§å人ã«ç´ä»ãããªãï¼ãããããã©ã¤ã»ã³ã¹æ°ãã§è²·ãã¿ã¤ãï¼ã ã¨ããã¡ãã£ã¨é«ãã§ãã
ã¨ãããããå¦ç¿ç¨ã«è©¦ãåã«ã¯ç¡æã§ãã®ã§ãããããã¾ããåºæ¬çãªã¨ãã£ã¿æä½ã¯ãIDEAã®æ¨æºæä½ããã®ã¾ã¾ä½¿ãã¾ãã®ã§ããã§ã«IDEA使ã£ã¦ãããªãå¦ç¿ã³ã¹ããä½ãã§ããCursiveã«ã¯REPLãµãã¼ããããããä½æ¥ä¸ã®é¢æ°ãREPLã«éãæ©è½ãªã©ãåãã£ã¦ã¾ãã
ï¼ãã¸ãã¹ã§ã¤ãããªããèªåãä»äºã§ä½¿ããã¼ã«ãä½ã£ã¦ãããä½è ã¸ã®æ¬æã¨ãã¦ãã¡ããã¨ãéãæããï¼
æ§é ç·¨é (Structural Editing)
ãããã®ã¨ãã£ã¿ã使ãã«ãã¦ããæ¬å¼§ããã£ãããå¹ççã«æ±ãããã® æ§é ç·¨é(Structural Editing)
ãè¦ãããã¨ããããããã¾ããPareditã¨ãParinferãæåã§ããSpacemacsã ã¨ãSPC+kãæ¼ããã表示ãããã¡ãã¥ã¼ã«ãæ§é ç·¨éã®ããã®é
ç®ãããã¾ãã
Clojureã§ã³ã¼ããæ¸ãã¦ããã¨ãããã®æ¬å¼§å ã«æ¬¡ã®è¡ã®æ¬å¼§ã丸ãã¨ç§»åããããã¨ãããã®é¨åãæ¬å¼§ã®å¤ã«è¿½ãåºããããã¨ãããã®æ¬å¼§å ã®ã³ã¼ããããä¸è¦ã ãã丸ãã¨æ¶ããããã¨ãããã®æ¬å¼§å ¨ä½ã丸ãã¨ã³ãã¼ããããã¨ãã£ããã¨ãããã£ã¡ã ãããã¾ããæ§é ç·¨éã§ãããã§ãã¾ãã
(my-great-func {:name "yano", :place "japan"})
ã®ãããªããã°ã©ã ãããã¨ãã¦ãããã£ã¨ããã® my-great-func
ãå®è¡ããã«ã¯æ¡ä»¶ããããã ã£ããwhenãifã§å²ããªãã¨...ãã¨èããã¨ãã¾ãã
(when condition (my-great-func {:name "yano", :place "japan"})
ã¨ãæ¸ãã¦ãã°ãããã§ãï¼ä¸ã®ã³ã¼ãã¯ãéãæ¬å¼§ã足ãã¾ããï¼ã
ã¾ããæ§é ç·¨é使ç¨ä¸ã¯ãæ¬å¼§ã¯å¸¸ã«ãã¢ã§æ¸ãè¾¼ã¾ãã¾ããéãæ¬å¼§ãæ¸ãã¨éãæ¬å¼§ãèªåçã«æã¡è¾¼ã¾ãã¾ãã次ã®ãããªæãã«ãªãã§ãããã
(when condition) (my-great-func {:name "yano", :place "japan"})
åæã«ãã¢ã«ãªãã®ã§ã(when conditionã¨æ¸ãã¦ããã¨ãå¿ ãæ¬å¼§ã®å å´ã«ãªãã¾ãã
ããã§ãconditionã®å¾ãã«ã(my-great-func ...)
ã®æ¬å¼§ã丸ãã¨æã£ã¦ãããããã§ãã
ãã¼æä½ã¯ã¨ãã£ã¿ã«ãã£ã¦ç°ãªãã¨æãã¾ãããSpacemacs+CIDERãªããwhen condition
ã®æ¬å¼§ã®å
å´ã«ã«ã¼ã½ã«ãããç¶æ
ã§ããSPC k sãã¨ãã¼ãæã¤ã¨ããSlurpï¼å¸ãåãï¼ãã¨ããæä½ãå®è¡ããã¾ããã¤ã¾ãã(when ...) ã®æ¬¡ã«ãã(my-great-func ...)ã¨ããæ¬å¼§ã®ãããã¯ãã(when ...)ã®æ¬å¼§ã®ä¸ã«å¸ãè¾¼ãããã§ãã
çµæã¨ãã¦ã次ã®ãããªã³ã¼ãã«å¤ããã¾ã
(when condition (my-great-func {:name "yano", :place "japan"}))
- æ¬å¼§ãæã¡è¾¼ãã¨å¸¸ã«ãã¢ã§æã¡è¾¼ã¾ãã
- æ¬å¼§åä½ã§ãé£ã®æ¬å¼§ãå¸ãè¾¼ãã ããä»ã®æ¬å¼§ãå¤ã«è¿½ãåºããããããã¨ã§ãã«ããï¼ãã¼ã¹ãã«ãã£ã¦ééã£ã¦æ¬å¼§ãæ¶ãã¦ãã¾ããªã©ã®ãã¹ãèµ·ããªããªã
- æ¬å¼§åä½ã§ç§»åããã®ã§åãªãã«ããï¼ãã¼ã¹ãããå§åçã«ãã¹ãã«ãã
Clojureããã°ã©ãï¼ããã¦ããããã¯LISPããã°ã©ãï¼ã¯æ§é ç·¨éã§æ¬å¼§ãæ±ã£ã¦ããã®ã§ãæ¬å¼§ããã©ãã§éãã¦ãã®ãããããããªãèªã¿ã«ãããã®ãã§ã¯ãªããæ¬å¼§åä½ã§è¿½ãåºãããå¸ãè¾¼ãã ããã«ããããããã¼ã¹ããããã§ããã便å©ãªç·¨éåä½ã ãã¨æã£ã¦ãã®ã§ããããªããéãæ¬å¼§ã¨éãæ¬å¼§ã§å²ããã¦ãããã¨ããLISPã®ç¹æ§ããã£ã¦ãããªã®ã§ãã
ä½è«ã§ãããClojureã¯æ¬å¼§ã®ç¨®é¡ã () ã ãã§ã¯ãªãã[], {}, ãªã©ã使ãã®ã§ãã¨ãã£ã¿ä¸ã§ã¯ããããè²åãããã¦ã¡ãã£ã¨èªã¿ããããã¨ããå©ç¹ããã£ãããã¾ãã
æ§é ç·¨éã«ã¯ããããªæ©è½ããã£ã¦ãæ£ç´ç§ãå ¨é¨è¦ãã¦ã¯ããªãã§ãã
- Slurp ï¼é£ã®æ¬å¼§ãå¸ãè¾¼ãï¼
- Barf ï¼æ¬å¼§ã追ãåºãï¼
- ã«ãã ï¼æ¬å¼§åä½ã§ã®ã«ããï¼
- ã³ãã¼ ï¼æ¬å¼§åä½ã§ã®ã³ãã¼ï¼
- åé¤ ï¼æ¬å¼§ã丸ãã¨æ¶ãï¼
ãã®ï¼ã¤ãè¦ããã ãã§ãä½æ¥å¹çãå ¨ãå¤ãã£ã¦ããã®ã§ãããããã§ãã
Slurpã¨Barfã¯ããåãå¸ãè¾¼ããã¨ãå¾ããå¸ãè¾¼ãããªã©ãåå¾ã©ã£ã¡ãå¦çãããã§ããããã2種é¡ããã¾ãããã¾ãã¯ãå¾ããå¸ãè¾¼ãããå¾ãã«è¿½ãåºããã®ã»ããè¦ãããã¨ããããããã¾ããå®éã®ã³ã¼ãã£ã³ã°ã§ãããããã¨ã¯ã大æµãã£ã¡ã®ã¯ãã§ããæ £ãããåãå¦çã§ããããã«è¦ããã°ããã§ãããã
æ§é ç·¨éã¯ãEmacs, Spacemacs, Cursiveã®ãããã®ã¨ãã£ã¿ã§ã使ãã¾ãããã ãããããã®æ©è½ãå¼ã³åºããã¼æä½ã¯ã¨ãã£ã¿ã«ãã£ã¦ç°ãªã£ã¦ããã®ã§ãèªåã®å¥½ããªã¨ãã£ã¿ã§ã®æä½ã調ã¹ã¦ã¿ã¦ãã ããã
ã¾ã¨ã
JavaVMãå
¥ã£ã¦ããåæã§ããã°ãClojure 1.9ããã¯ã clojureã³ãã³ãã®ã¤ã³ã¹ãã¼ã«
ã ãã§ãç°¡åã«Clojureãå§ããããã·ã§ã«ã»ã¹ã¯ãªããã®ããã«Clojureã³ã¼ããå®è¡ãããã¨ãã§ããããã«ãªãã¾ãããè¥å¹²ãã¼ãã«ãä¸ãã£ãããã«æãã¾ããã¾ãã deps.edn
ãå°å
¥ããããã¨ã§ãå¤é¨ã©ã¤ãã©ãªãã¹ã¯ãªããã³ã¼ãããç°¡åã«å©ç¨ãããã¨ã§ããããã«ãªãã¾ããã
ã¡ãã£ã¨ã試ãã¦ã¿ãã®ã¯ã©ãã§ããããã