Clojure * windows インストール [#cf503d25] インストール手順 ** Java Development Kit (JDK)のインストール [#e49d154a] ClojureはJava上で動作するため、まずJDKをインストールする必要があります。OpenJDKを使用するのが一般的です。Chocolateyを使ってインストールすることもできます。 choco install openjdk ** Leiningenのインストール [#y3186eac] LeiningenはClojureのビルドツールであり、パッケージ管理やプロジェクト管理を行います。 http://yohshiy.blog.fc2.com/blog-entry-249.html 以下のインストーラはバグっていた(ver1.0) https://djpowell.github.io/leiningen-win-installer/ 以下から、lein.bat用のコードをコピペする。 https://leiningen.org/ 次に、 .\lein.bat とかくと、最初はインストールされていないのでエラーになるが、その際に表示されているログをみると以下のコマンドでインストールできると書いてある .\lein.bat self-install と書くと、ひっそりとダウンロードされる。 再度、 .\lein.bat とやると、何やら使えるようになっている。 ** Clojure CLIのインストール [#zfe67941] Clojure CLIツールをインストールすることで、Clojureプログラムを実行するためのコマンドラインツールが利用可能になります。以下のコマンドを実行します。 choco install clojure *** ドキュメント [#ia244213] https://clojure-doc.org/ ** VS CodeとCalvaの設定 [#fc5260c2] Clojureの開発には、Visual Studio Codeとその拡張機能であるCalvaを使用することが推奨されます。VS Codeをインストールした後、Calvaを拡張機能として追加します。 ** REPLの起動 [#r795924d] インストールが完了したら、Leiningenを使ってREPL(Read-Eval-Print Loop)を起動します。コマンドプロンプトまたはPowerShellで以下を実行します。 lein repl ** WSLの利用 [#b55f7d41] Windows Subsystem for Linux (WSL)を使用する方法もあります。これにより、Linux環境でClojureを実行することができ、Linux向けのインストール手順をそのまま利用できます。WSLをインストールし、Ubuntuなどのディストリビューションを選択して、Linuxの手順に従ってClojureをインストールします。 *** 注意点 [#n86c5cce] 環境変数の設定: JDKやLeiningenをインストールした後、環境変数が正しく設定されていることを確認してください。特に、javaやleinコマンドが認識されるようにする必要があります。 依存関係の確認: Clojureを実行するためには、bash、curl、rlwrapなどの依存関係が必要です。これらがインストールされていることを確認してください。 * VSCodeのプラグイン [#l74caa99] ** Calva [#s3195086] Calvaを使うと、REPLでコードを評価することができるようになります。 Ctrl + Alt + C, Ctrl + Alt + J で、メニューが出てきます。 - Babashka: スクリプティング用の軽量Clojure環境 起動が早く、小規模なスクリプトに最適 - nbb: Node.js環境でのClojureScript実行環境 JavaScriptのライブラリを使用可能 - deps.edn: Clojure CLIのデフォルトの依存関係管理 純粋なClojureプロジェクト用 - deps.edn + Figwheel Main: ClojureScript開発用のホットリローディング環境 ブラウザアプリケーション開発に適している - deps.edn + shadow-cljs: より高度なClojureScript開発環境 NPMとの統合が優れている それを選んで、 実行したいコード上で、Alt + Enterを押すと、評価されてコメントのように計算結果が表示されます。 これらの手順に従うことで、Windows 11上でClojureの開発環境を整えることができます。 *** トラブルシューティング [#s9d6d81a] - 以下のエラーが出た場合 ; Jacking in... ; TypeError: Cannot read properties of undefined (reading 'label') REPLの接続に問題が発生しているようです。Calvaでのジャックインが正しく行われていないようです。 以下の手順で再接続を試してみましょう: - コマンドパレット(Ctrl + Shift + P)を開く - "Calva: Start a Project REPL and Connect (Jack-in...)" を選択 - プロジェクトタイプとして "Babashka" を選択 * チュートリアル [#oe2ff9d5] ** 文字をさかさまに変える。 [#j3a14d97] (ns play) ;; 文字列を逆順にする (defn reverse-string [s] (apply str (reverse s))) ;; 文字列内の特定の文字をカウント (defn count-char [s c] (count (filter #(= c %) s))) ;; REPLで試してみましょう (comment (reverse-string "hello") ;=> "olleh" (count-char "hello" \l) ;=> 2 )