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
 )
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS