light tableでclojure入門
DESCRIPTION
Tokyo.clj#19にて初心者向けのハンズオンをやりましたので、その時の資料です。 Light TableとLeiningenの使い方、またこの説明用に作ったLeiningenテンプレート、reloadable-webを使うと、コードを変更しただけで、再読み込みが行われ開発しやすい環境が作れるようになっています。TRANSCRIPT
![Page 1: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/1.jpg)
Light TableでClojure入門
ニャンパス 登尾(@tnoborio)
資料: http://bit.ly/1d1lBSx
![Page 2: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/2.jpg)
やること
Light Tableの使い方
Leiningenのセットアップ
InstaReplでREPLウェブアプリケーション
![Page 4: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/4.jpg)
Light Tableの使い方
Workspace Commands
![Page 5: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/5.jpg)
Workspaceの表示
● Control + SpaceでCommands● Commandsを出して、
“Toggle workspace tree”を選択→Workspaceが左ペインに表示
![Page 6: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/6.jpg)
Clojureプラグインのアップデート
1. Commandsで、”Plugins: Show plugin manager”
2. Commandsで、”Plugins: Refresh plugin list”3. Clojureプラグインのアップデート4. 念のためLight Table再起動
![Page 7: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/7.jpg)
Light TableでREPL
Commandsから”Instarepl: Open a clojure instarepl”
● (+ 1 2 3)● (println “Hello”)
![Page 8: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/8.jpg)
Instareplでの標準出力
標準出力は、
Commands→“Console: Toggle console”
![Page 9: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/9.jpg)
(iterate inc 1)
(apply +(take 100 (iterate inc 1)))
(re-find (re-pattern "^\\d{3}-\\d{4}$") "343-0825")
![Page 10: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/10.jpg)
Leiningenのインストール
1. http://leiningen.org/からleinをダウンロードする。
2. パスの通ったディレクトリに置く3. 実行権限の付与
![Page 11: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/11.jpg)
Leiningenのインストール
Macの場合
$ curl https://raw.github.com/technomancy/leiningen/stable/bin/lein$ mkdir ~/bin/$ mv lein ~/bin/$ chmod a+x ~/bin/lein
![Page 12: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/12.jpg)
Leiningenのインストール
Windowsの場合
(@shinseitaroさんありがとうございます。)
lein.batをダウンロード
(もしくはInstallerもこちら)lein.batを適当んディレクトリに置く
そのディレクトリを環境変数にセット http://next.matrix.jp/config-path-win7.htmllein self-install
![Page 13: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/13.jpg)
Leiningenでプロジェクト作成
適当なディレクトリに移動
lein new sample
![Page 14: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/14.jpg)
Light Tableからコードを触ってみる
Commandsで、”Add connection”を選び
Clojureを選択し、project.cljを選択
![Page 15: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/15.jpg)
接続
Commands→”Add folder”でWorkspaceにsampleディレクトリを追加
src/sample/core.cljを開く
Commands→”Instarepl: Make current editor an instarepl
![Page 16: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/16.jpg)
接続のリスト
Commands→”Connect: Show connect bar”
“disconnect”で接続を切る
![Page 17: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/17.jpg)
ウェブアプリケーション
テンプレートを使ったプロジェクト作成
lein new reloadable-compojure web
![Page 18: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/18.jpg)
先程と同様に接続
Commands→”Connect: Add Connection”でproject.cljを指定
src/web/core.cljを開く
Commands→”Instarepl: Make current editor an instarepl
;; (start-server!)のコメントアウトを外す
![Page 19: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/19.jpg)
Compojureテンプレートの場合のディレクトリ構造
● src/● src/web/core.clj● src/web/handler.clj● project.clj● test/
![Page 20: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/20.jpg)
handler.clj(1)
(defroutes app-routes (GET "/" [] "Hello World") (route/resources "/") (route/not-found "Not Found"))
![Page 21: Light TableでClojure入門](https://reader034.vdocuments.site/reader034/viewer/2022052617/547ec193b379593a2b8b54e1/html5/thumbnails/21.jpg)
handler.clj(2)
(def app (-> app-routes handler/site (wrap-reload '(hoge.core)) (wrap-stacktrace)))