https://ayato-p.github.io/clojure-beginner/index.html
Clojureの学習関連のリンクがまとめられています。 https://qiita.com/Saibaba81/items/16ef2486d2345f7f0e57
Common Lispは、Clojureとは少し異なるが、そんなに大きく異なるわけではない
https://gist.github.com/t-cool/b71accaeb270c98c189c622a3b018abf
「魔法言語 リリカル☆Lisp」はノベルゲーム風のLispチュートリアルです。 "アリサ"や"すずか"達と楽しくLispを学べます。 全12話構成で各話の最後には練習問題が用意されています。 Lisp処理系にはNScripter上で動作するLispインタプリタであるNScLisper?を使用。 別の処理系をインストールする必要はありません!!
たくさんの言語で学べる(英語) https://exercism.org/dashboard
https://github.com/norvig/paip-lisp
Peter Norvig (1992) 著の書籍「Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp」と、そこに含まれるコードのオープンソース リポジトリ
Clojure開発において括弧の操作は非常に重要です。VSCodeと適切な拡張機能を使用することで、効率的なコード編集が可能になります。この記事では、基本的な括弧操作から高度な編集テクニックまでを解説します。
IntelliJ IDEA の拡張: Cursive は IntelliJ IDEA の機能を拡張し、Clojure 開発に特化した機能を提供します。
インテリジェントなコード補完: 文脈に応じた高度なコード補完を提供します。
リファクタリング支援: Clojure コードのリファクタリングを安全かつ効率的に行えます。
デバッグ機能: 強力なデバッグ機能を備え、ステップ実行、ブレークポイント設定、変数検査などをサポートします。
シンタックスハイライトとエラーチェック: 正確なシンタックスハイライトとリアルタイムのエラーチェックで、コードの品質を向上させます。
REPL 統合: IDE 内で REPL を使用し、インタラクティブな開発を可能にします。
テスト実行: IDE から直接テストを実行できます。
JVM 上での ClojureScript? 開発サポート: ClojureScript? の開発もサポートしています。
IntelliJ IDEA を Clojure 開発環境に変えるための専用 IDE プラグインです。
CIDER は Emacs ユーザーにとって、Clojure 開発に欠かせないツールであり、効率的で快適な開発体験を提供します。
Emacs に Clojure 開発機能を統合: CIDER は Emacs を強力な Clojure IDE に変えます。
REPL 中心のワークフロー: REPL (Read-Eval-Print Loop) を中心とした対話的な開発を支援します。
強力なデバッグ機能: ブレークポイント、ステップ実行、変数検査など、高度なデバッグ機能を備えています。
コード補完、シンタックスハイライト、ドキュメント表示: コードの記述を支援する機能が充実しています。
テスト実行: プロジェクト内のテストを簡単に実行し、結果を確認できます。
ミドルウェアによる拡張性: CIDER はミドルウェアによって機能を拡張できます。
https://github.com/tpope/vim-fireplace
tpope/vim-fireplace は、Vim を強力な Clojure 開発環境に変えるプラグインです。主な機能は以下のとおりです。
REPL (Read-Eval-Print Loop) の統合: Vim から直接 Clojure コードを評価し、対話的にデバッグできます。
名前空間の管理: Clojure の名前空間を簡単に追加、削除、参照できます。
評価: カーソル下の式、選択範囲、またはファイル全体を評価できます。
シンボルの検索と定義: プロジェクト内のシンボルを検索し、その定義にジャンプできます。
CIDER との互換性: Emacs の CIDER と似たような使用感で、Vim を Clojure IDE として利用できます。
最も基本的な操作は括弧間の移動です。以下のショートカットを使用します:
コードの編集や評価のために、括弧で囲まれた範囲を選択する操作も重要です:
コードの構造を変更する基本操作:
これらは括弧の範囲を動的に変更する重要な操作です。
;; Before: (+ 1 2) 3 ;; After Slurp: (+ 1 2 3)
;; Before: (+ 1 2 3) ;; After Barf: (+ 1 2) 3
(defn calculate [x] (let [y (+ x 1)] 2)) ;; yにカーソルを置いてスラープすると: (defn calculate [x] (let [y (+ x 1 2)]))
;; バープで戻すと: (defn calculate [x] (let [y (+ x 1)] 2))
1. カーソル位置を意識する
- 操作の前に適切な位置にカーソルを合わせることが重要です
2. 段階的な操作を心がける
- 複雑な変更は一度に行わず、小さなステップに分けて実行します
3. アンドゥを活用する
- 操作を間違えた場合は`Ctrl+Z`ですぐに元に戻せます
4. 括弧の対応を確認する
- VSCodeの括弧強調表示機能を活用して、構造の変更を確認します
https://calva.io/commands-top10/
https://calva.io/finding-commands/
VSCodeでのClojure開発において、括弧操作は基本的なスキルの一つです。これらのショートカットや操作方法を習得することで、より効率的なコーディングが可能になります。日々の練習を通じて、これらの操作を自然に使えるようになることをお勧めします。
インデントを自動でつけたり、括弧の範囲というか位置をショートカットで編集が自由自在になるレベルが必要。
Clojure/conj
で調べると出てくる
マニアックな感じしかしない https://www.youtube.com/watch?v=c5QF2HjHLSE&list=PLZdCLR02grLpIQQkyGLgIyt0eHE56aJqd
https://www.youtube.com/watch?v=Earx_BjvgO0&list=PLZdCLR02grLr4TWUP6qeLxIn4OJLNwKNZ
https://www.youtube.com/watch?v=c5QF2HjHLSE&list=PLZdCLR02grLpIQQkyGLgIyt0eHE56aJqd
http://qiita.com/Haar/items/19f9acbc739cd801233c
https://qiita.com/mogamoga1337/items/a8fe542cd16be29dd657
Ferret は、リアルタイム組み込み制御システムで使用するために設計されたフリーソフトウェア Lisp 実装です。Ferret Lisp は、自己完結型のC++11にコンパイルされます。生成されたコードは、 C++11準拠のコンパイラをサポートする任意のオペレーティングシステムおよび/またはマイクロコントローラ間で移植可能です。2KBの RAMしか搭載されていない組み込みシステムから、Linux/Mac OS X/Windows を実行する汎用コンピュータまで、さまざまなアーキテクチャで実行できることが検証されています。 https://github.com/nakkaya/ferret
https://github.com/pjagielski/clojure-landscape-from-java?tab=readme-ov-file
しかし、この対比だと、フロントエンドは、Angularだけにみえてしまうが、そうなのだろうか?
Reactだと、以下のフレームワークがエレガントらしい https://github.com/day8/re-frame
https://zenn.dev/lagenorhynque/articles/742cf1a0b0a850
https://ertu.dev/posts/i-made-an-online-shooter-game-in-lisp/
https://github.com/joinr/sporklisp
見たほうがいい。日本では知名度が低い優れモノがみつかること間違いなし
https://github.com/AlexiaChen/awesome-stars?tab=readme-ov-file
https://flexiana.com/2024/05/lisp-game-jam-2024-a-starter-guide-for-clojure-devs
https://github.com/AlexiaChen/awesome-stars?tab=readme-ov-file#clojure
Microsoft の .Net Framework の実行エンジンである Common Language Runtime (CLR) 上の Clojure のネイティブ実装です。 https://github.com/clojure/clojure-clr
https://github.com/arcadia-unity/Arcadia
動画
Arcadia 0.1 Setup
https://www.youtube.com/watch?v=KLq9b9lDmkc
https://www.youtube.com/watch?v=tBvNIJzlWEI
https://github.com/glojurelang/glojure
https://github.com/basilisp-lang/basilisp
https://github.com/phel-lang/phel-lang
http://xahlee.info/emacs/emacs/lisp1_vs_lisp2.html
https://news.mynavi.jp/techplus/article/programinglanguageoftheworld-32/
https://qiita.com/minebreaker/items/de78a425db81313eeccc
Bashがどこにあっても動作するClojureのようなLisp
https://github.com/chr15m/flk/
https://www.reddit.com/r/Clojure/comments/e2zkvq/a_clojurelike_lisp_that_runs_wherever_bash_is/