(-> % read write unlearn)

All opinions expressed are solely my own and do not express the views or opinions of my employer.

clojure

def と Symbol と Var の話 3 :値の変更

前回の続きです。 defは、Symbol --> Var --> Valueという数珠つなぎを構成します。 なので、その値(というか評価結果)を変更する方法もいくつかに分けて考えられるのではないかと思います。 Valueオブジェクト自体の中身を変更する。 Var --> Valueの束縛…

def と Symbol と Var の話 2:なぜ Symbol と Var が独立して存在するのか

前回のdef と Symbol と Var の話の続きです。 VarやSymbolの役割、defにおける挙動はなんとなく分かってきました。 では、なぜそんなややこしい*1設計になっているのでしょうか。 Javaとかには「変数名」みたいな型はないですよね。 リフレクションするとき…

def と Symbol と Var の話

GPソフト Wiki - ClojureのVarの記事を読んでいて、 自分が、Clojureのdefの挙動やSymbol, Varといった言葉の意味をよく理解していないことに気付きました。この記事や以下の記事を参考にしつつ自分なりに一度整理してみます。 Clojure - Vars and the Globa…

渋谷JVM(20150418)のメモ

1年以上前の渋谷JVMの参加メモが下書きのまま放置されていたので、もったいないので晒しておきます。 渋谷JVMのメモです。結構長かったし、楽しい雰囲気なのであんまりメも取らなかったです。いつもどおり体裁すら整えてないけど、メモ書きとして。 I love s…

Clojurescript QuickStart #2

前回の記事の続きで、Nodeで動かすところをやる。 Node.js Node.jsでREPLを動かすためのスクリプトを作る。 touch node_repl.clj 中身は以下のように書き込む。 (require 'cljs.repl) (require 'cljs.build.api) (require 'cljs.repl.node) (cljs.build.api/…

Clojurescript QuickStart

ClojurescriptのQuick Startをやってみた。その時の内容をメモ。 http://niku.name/articles/2015/08/29/ClojureScript%20Quick%20Start%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A8%B3 の和訳記事も参考にしています。 まずは、プロジェクトのディレクトリを作成…

Clojureをスクリプトとして使う:inlein

inleinはClojureをスクリプトとして使用することを可能にしてくれるツールです。leiningen経由でClojureのコードを実行すると起動が遅いという問題があります。inleineはこの問題を解決(緩和)してくれます。 ちなみに、「スクリプト」と言っているのは「Sh…

Clojure Luminus のドキュメントの和訳

Luminus のドキュメントの和訳をした。 GitHub - hatappo/luminus: documentation site for Luminus framework 最初、1つのTOPICの和訳をQiitaにアップしました。 そうしたら、Qiitaのコメントで、ドキュメントがClojureのプロジェクトとしてリポジトリにあ…

clojure 2進->10進変換

4clojureで出くわした。 "1101"のような2進数を表す文字列を10進数に変換する関数を書け。 自分の解答はこれ。 (fn [s] (->> (reverse s) (map-indexed (fn [idx item] [idx item])) (reduce (fn [sum v] (+ sum (* (- (int (v 1)) 48) (int (Math/pow 2 (v …

clojure yesql (1)

ClojureでRDBとSQLをごにょごにょするライブラリを探すとkormaの記事が多いです。しかし、java生まれseasar育ちとしてはORMよりもsqlテンプレート方式のほうが使いやすいです。SQL好きだし。ClojureでSQLテンプレートならyesqlです。yesqlは、Luminusの2でデ…

Intellij IDEA と cursive で Clojure の開発をする

Intellij IDEA と cursive で Clojure の開発をするために必要な準備作業を整理。 インストール https://www.jetbrains.com/idea/download/ 「Download Communiy」 プラグインインストール CursiveというClojure用プラグインをIDEAにインストールします。こ…

JJUGCrossCommunityConference2015Springメモ

JJUGCrossCommunityConference2015Springのメモです。昼に予定があって、17:00から3つのセッションにしか参加できなかったです。表示も整えていないし、メモベースなので、ひどい状態ですが、自分の備忘として。下書きにしたまま結構日が経ってしまった。。…