Clojure
Apply a list of function to parameter, clojurestackoverflow.com以下のように関数のリストを作って map で適用しようとすると 5 のリストが返ってきてしまう。 (def ops '(+ - * /)) (map #(% 2 5) ops) ;=> (5 5 5 5) なんで関数呼び出ししてるはずなの…
Clojure を始めてからいくつかの GitHub リポジトリをみていると「 lein-template あるから lein new foobar your-app-name ってすればいいよ」みたいなのを稀によく見かける。けど、 leiningen がデフォルトで提供しているテンプレートの数ってそんなに多く…
昨日まで読んでいた Mastering Clojure Macros の中で &env と &form に触れているところがあった。まぁ正直何に使ったらいいのか分からなかったし、 &env と &form を参照できたとして「で?」である。これらが何の為にあるのか、というのはどうもこの辺を読…
読んだ。On Lisp と LET OVER LAMBDA 読んでたら必要ないかなーとは思うけど、実際の Clojure の著名ライブラリとかで使われているテクニックを本に沿って知ることができるのでそういう意味では良い本かと思います。僕の場合 On Lisp, LOL の内容をあんまり…
How to substitute path to home for "~"?stackoverflow.comSystem/getproperty でユーザーホームを取得して ~ を置換するようなマクロ書けばいいよ、とのこと。(後で少しこの記事は綺麗にすると思う)
venantius/ultragithub.com実際綺麗になるんですけど、 Emacs の上でしか REPL 起動しないので意味なかった…。
How can I programmatically generate record definitions?stackoverflow.comこれ、答えはすっと出て朝から回答しようと思ったけど、電車に乗ってる間に先を越されてしょぼんしています。 ただ、僕よりずっといい答えが書かれているのでさくっと書いてみます…
まえがき だいたい 2 週間くらい Clojure を書いているとライブラリのバグを綺麗に踏み抜いたりマクロの沼に引きずりこまれたりと、まぁやたらとデバッグする機会があります。それで先日からライブラリを clone して書きなおして lein install して…などして…
How to make this sieve function lazy?先日僕も似たような実装しようとしてハマったのを思い出しました。 回答には「本物のエラトステネスの篩 *1」という論文があるので参考にするといいと書いてあります。 また、それについての綺麗な実装もあるので参照…
Circular definition in Clojure (defn f1 [] (lazy-seq (cons 0 (f2)))) (defn f2 [] (lazy-seq (cons 1 (f3)))) (defn f3 [] (lazy-seq (cons 2 (f1)))) こうすると f1 の評価タイミングで f2 が存在しないのでコンパイラがエラーを吐くんだけどどうしたら…
ちょっとコード追いかけながら Clojure の実装がイケてないのかなーって思って Clojure の実装そのものを調べたりしたいことってありますよね。 そういうときのために Clojure それそのものをビルドして使う方法です。 Clojure 自身のビルドの仕方 git clone…
xsc/lein-licenseちょっと便利。profiles.clj に [lein-license "0.1.2"]を :plugins のとこに追加するだけ。プロジェクトの下で lein license update mit とかすれば自動的にライセンス部分で必要な部分を全部書き換えてくれる。欲を言えば profiles.clj の…
Why inserting 1000 000 values in a transient map in Clojure yields a map with 8 items in it?興味深かった。ベクターに対して同様のことを行った場合は期待通りに動くけど、マップに対してだと動かないという例。 (count (let [m (transient [])] (doti…
mbuczko/awesome-clojureだいたいこの辺を読むといいよ!とのこと。 もし何か欠けていたら PR から誰でも追加出来るようです。
Clojure split lines with all empty lines kept文字列中の最後の空行を Clojure だとどうやって残したらいいの?という質問。 user=> (require 'clojure.string) nil user=> (clojure.string/split-lines "a\n\nb\n") ["a" "" "b"] user=> (clojure.string/s…
Clojure - why is the "do" statement necessary for grouping?まぁそうなるよね、という例。 (defn x [] (if true (do (println "a") (println "b")))) => (x) a b nil do を使えば正常に動くけど、 do を抜かすと… (defn x [] (if true ((println "a") (pr…
(gensym) is always unique, `(symb#) is not -- why?初見だと僕も見事に引っかかった。 (defmacro indirection [name & body] `(do (def name# ~@body) (defn ~name [] name#))) このマクロは一度しか展開されないので、実行する度にいちいち展開されて nam…
Javaでの素因数分解プログラム - 徒然なる情報系日記これ読んでたら Clojure で実装したくなったのでやってみた*1。最終的なコードはこれ。 (ns prime-factorization.core (:gen-class)) (def prime-numbers ((fn f [x] (cons x (lazy-seq (f (first (drop-w…
読みました。結論から言うと、今現時点 (2015/4/12) でもまぁ役に立つ Clojure で Web 開発をするための入門書だと思います。 本の概要 目次 1. Getting Your Feet Wet 2. Clojure Web Stack 3. Liberator Services 4. Database Access 5. Picture Gallery 6…
デバッグについてです。例えば Ruby 界隈だと pry で、 Java な人たちは高性能 IDE に標準装備されているデバッガあるいはプラグインなどを利用していることでしょう。Clojure も最近はデバッガが cider に標準装備されているようです。ちょっとまだこなれて…
lein-git-deps というのがあるのでこれを使う。tobyhede/lein-git-depsgithub.comprofiles.clj に以下のように追記して {:user {:plugins [[lein-git-deps "0.0.2-SNAPSHOT"]]}} project.clj に :git-dependencies [["https://github.com/tobyhede/monger.gi…
Web Development with Clojure の第 5 章くらいでハマる。このエラーの文言で CSRF だなってことは簡単にわかるんだけど、解決するのに少し悩んだ。 古いバージョン( 0.8.2 当時)の lib-noir だと ring を直接使っていたので、 ring/ring-anti-forgery が依…
Pidgin, IRC, Freenode | Adam MonsenClojure のチャンネルを見たかったので、 Freenode のアカウント取って入った。
Web Development with Clojure を読みながら。 だいたいこの本で使われているライブラリのバージョン古いので最新のものを使って書きながら読み進めているのだけど、見事にハマったよね。こんなエラーが出る。 1. Caused by java.lang.RuntimeException No s…
これで「なんかください」って書いてたらおふたりから頂いてしまった。ありがとうございますm(__)m@finalfusionさんからClojure Cookbook: Recipes for Functional Programming作者: Luke Vanderhart,Ryan Neufeld出版社/メーカー: Oreilly & Associates Inc…
bbatsov/clojure-style-guide bbatsov/clojure-style-guide · GitHubtotakke/clojure-style-guide totakke/clojure-style-guide · GitHubこういうスタイルガイドは言語の勉強するときに役に立つので大変ありがたい。 その言語の抱えている問題/特徴なんかが…
さてはて、 Clojure の勉強がてら何かしら面白いものないかなーと思い、形態素解析ライブラリでも使うかーということで使ってみた。適当に project 作って依存性解決して (defproject kuromoji-test "0.1.0-SNAPSHOT" :description "FIXME: write descriptio…
とりあえず、読んだけど…ってところです。 良かったとこ 怖くない 薄い 軽い とりあえず Web アプリ作れる 良くないとこ 浅い 説明不足感ある 誤字脱字が気になる 感想 正直、好みの問題で話すと好きじゃないです。分配束縛の話のとことか、それで理解出来る…
ゆるふわRailsの会 #0 レイクタウンでRailsやろうよ - ゆるふわRailsの会 | Doorkeeperというわけで遠路はるばる埼玉まで行ってきました。 HaLake はニャンパス株式会社の運営しているコワーキングスペースです。ニャンパスと言えばのんのんびより、もとい C…
なんか面倒くさい。 Clojure Programming 読んでていきなり Chapter1 とかでチラッと出てくるんだけど、一緒に Clojure 勉強しているスクラムマスターが混乱したくらいには面倒くさいというか。面倒くさい。事の発端はこれ昨日スクラムマスターが 「Clojure …