タグ

ブックマーク / manjilab.com (17)

  • Clojure使い ⇒ Clojurian - マンジラボ

    この話題は去年の夏に収束したとおもっていたのですが、再燃してきているみたいなので再ループしないうちに記事にしておきます。 Clojure使いを何と呼ぶか。 Clojure使い – skalabeの日記 結論から言うと “Clojurian“。 実はRich人がすでに言及しています。 The A-Z of Programming Languages: Clojure (Page 3) interviewer: Perl gurus are ‘Perl Mongers’, Python ones are ‘Pythonistas’. We think Clojure needs something similar. Any suggestions? Rich: I think everyone has settled on Clojurians. というわけでもうClojurianでいいよね

  • “Clojureライブラリ・コーディング規約” まとめ - マンジラボ

    前エントリ clojure.lib コーディング規約・訳 から1週間以上がすぎました。 Google Groupsでのディスカッションで合意されたコーディング規約をStuがまとめてアップしてくれました。 Clojure Library Coding Standards | Clojure | Assembla さっそく和訳してみました。 間違いがあればご指摘ねがいます。 ⇒ @manjilab 【和訳ここから】 免責事項: 規則は破られるためにあります。この規約に倣うも絶対のものとして扱わないこと。 規約: 名前と使用法はよく考えて書くこと。RichはJavaにおける既存のコードとの互換性の維持を尊重しています。練習用のコードであればいつまでもいじってられますが、ひとたび名前と使用法が公開されればそうはいきません。(具体的な実装に興味がなく名前と用法だけを見ている利用者が多いですから) コ

  • clojure.lib コーディング規約・訳 - マンジラボ

    Clojure Dev Google groupsで盛り上がっているトピックがあります。 “clojure.lib coding standards: initial draft brain dump Options” Programming Clojure の著者、Stuart Halloway氏が音頭を取ってclojure.lib用のコーディング規約をみんなで決めようというものです。 興味深かったのでStuの提案したルールを和訳してみました。 思いっきり意訳です。間違いがあればご指摘ねがいます。 ⇒ @manjilab (掲示板の流れに合わせていくつかの項目を追加・削除しています) 【和訳ここから】 これは公式でも最終版でもない。議論を誘発するための叩き台です。もし致命的に間違っている項目が含まれていなければ私の手抜きです :-) ルールは破られるためにある。よってどのような規約も絶

  • Clojureコードバトンに参加してみた。 - マンジラボ

    Clojureコードバトンが回ってきたので挑戦してみたよ。 数日前もにいちど打診されてたのですが渡航中だったのでパスさせていただいてました。 帰国後に他の方が回してくださったのでありがたく参加させていただくことに。 とはいえgithubgistも他の人のソースをforkしたことがないんだよね。なんか不安。いいのか? forkは実際にやってみると簡単でした。gistにログインしてforkボタンを押してあとはweb上で編集するだけ。 渡航中にチェックしたときは僕にもリファクタリングできそうな箇所が2つほどあったので安心してたのですが、先ほど見てみるとキレイに修正済でした。しまった。 いきなりハードルがあがってしまいましたがすでに受けてしまったので、機能追加の方向でなんとかします。 このようになりました。 実行しているのが Mac OS X 上の場合のみ、出題時に英単語を音声で出力するようにし

  • Clojureグッズ - マンジラボ

  • Clojureで最初に覚えておくべき4つの関数 - マンジラボ

    ClojureをREPLで使えるようにしたら最初に覚えるべき4つの関数。 関数のマニュアルを引く : doc 使用例 => (doc apply) あらゆる関数の使用法やパラメータなどを調べるときに使います。 関数名をパターンマッチで引く : find-doc 使用例 => (find-doc “-array”) 使用例 => (find-doc #”^seq”) 関数名がうろ覚えのときに役に立ちます。 javaのリファレンスを引く : javadoc 使用例 => (javadoc Integer) java.sun.comから該当するマニュアルをウェブブラウザで開きます。 関数のソースを表示する : source 使用例 => (source reduce) 個人的に超重要。マニュアルよりソースを読みたいときもある。 contribのソースを読むととても勉強になる。 REPLの設定

  • Lispで書くときに括弧は見えていない? - マンジラボ

    Lisp系言語の第一印象は「括弧が多すぎ!」でした。 この括弧の多さが Lispを難解そうに感じさせ、人によっては拒絶反応をおこします。(昔の僕ですが) しかしある程度Clojureに慣れてから括弧について考えてみると 「あると思えばある、ないと思えばない。」という感覚です。 たとえるなら日語における「句読点」。また、テキストエディタによってはスペースやタブ、改行を表示できますがアレと同じ感覚です。 構文を見るときに括弧の存在を気にしてはいません。 配置(インデント)で理解しています。 半年前の自分に伝えるならば、上のコードはこう見えていると言うでしょう。 閉じ括弧はエディタがかってに付けるもので、括弧の整合性は気にしていません。 もし間違っていたらインデントが崩れるのですぐに判ります。 閉じ括弧が連続すると何らかの大きなブロックの終わりと感じます。 インデントでコードを理解している

  • Lisp風のインデントは見やすいと思う。 - マンジラボ

    Lispをはじめる前はあの独特のインデントに拒否感がありました。 たとえば 先の記事 のコードを例にとると のようなインデントです。 同じコードを一般的な言語風にインデントすると のようになるでしょう。 見慣れたスタイルですがちょっと間延びして見えます。 Lisp風のインデントではブロックは このように視覚的に圧縮されています。 慣れた今となってはこちらの方が見やすくて好きです。

  • Clojure開発環境の導入 – TextMate編 - マンジラボ

    Clojureの開発環境は僕の知る限り以下のものが有名です。 TextMate – Clojure.tmbundle Emacs – clojure-mode NetBean – enclojure Eclipse – clojure-dev VimVimClojure その他にも Lispboxのemacs版といえる Clojure Box などがあるようです。 僕は主にTextMateを使っていますがClojureの導入はとても簡単。 バンドルさえインストールしておけばclojureが見つからなければセットアップするかどうかを聞いてきます。 ClojureバンドルはGithubでいろいろみつかりますが僕はこれを使いました。 http://github.com/kek/clojure-tmbundle 導入のし方も念のため: % cd ~/Library/Application

  • http://manjilab.com/2009/12/10/clojure-with-textmate-tips/

  • jRubyとClojureの速度比較 on Google app engine - マンジラボ

    以前 Google App Engine (以下:GAE) 上にて簡単なアプリ動かしたときのデータです。 シンプルな、いわゆる”Hello World”アプリをSinatraとCompojureで作り、GAE上での実行時間を調べました。 CompojureとSinatraは良く似ているので jRubyとClojureの比較といってもいいかもしれません。 まずは Sinatra on jRuby 起動までに20秒前後とかなり待たされます。 2回目からはオンメモリなので速いです。 次が Compojure (Clojure) 6〜7秒で起動。だいたい予想通りの結果です。 こちらも2回目からは速いです。 それぞれ Sinatra の3倍は高速でしょうか。 GAEは30秒を越えると起動に失敗するので注意が必要です。 Sinatraでこれですから、jRuby on Ralisで苦労している理

  • Project Euler #020 – 100の階乗 - マンジラボ

  • Project Euler #019 – 日曜日で始まる月 - マンジラボ

  • Clojureでメソッドチェイン風に記述するマクロ - マンジラボ

    ClojureのAPIリストを眺めていたら面白いマクロがありました。 -> と ->> です。 Rubyのメソッドチェインのようなことができます。 例えば次のようなRubyでの処理は 123456789.to_s.length => 9 ClojureでもJavaのメソッドを直接使う場合は .. でチェインできます。 user> (.. 123456789 toString length) => 9 -> を使えばこれをClojure上の関数で実現できます。 user> (-> 123456789 str count) => 9 123を文字化して逆順にする場合 user> (-> 123 str reverse) => (\3 \2 \1) reverseは文字のシーケンスを返すので user> (->> 123 str reverse (apply str)) => "321" のよ

  • Clojureのweb fameworkについて調べた。 - マンジラボ

    Clojure上でのWebフレームワークを探してみた。 定番ぽいのが3つ見つかった。 1. Compojure   コードサンプルを一見するとSinatraと錯覚してしまう。 作者も web.py や Sinatra にインスパイアされたと言っている。 参考リンク: Googleグループ, github 2. Webjure 最近はCompojureにおされているかも。 検索するとCompojureと並んでよく出てくる。 3. Conjure Clojure上でのrailsを目指してるっぽい。(Tutorial) Conjureは以下のライブラリを含んでいる: ring : RubyでいうことろのRack clj-record : RubyでいうところのActiveRecord clj-html : HTMLテンプレート記述言語。Lisp系とxml系は相性がいいよね。 その他気に

  • Clojureはじめました。 - マンジラボ

  • Clojureコーディング規約・訳 - マンジラボ

    Lisp系はあまりなじみがないので変なクセがつく前に Clojure流のコーディングのガイドラインを調べました。 あまり資料が見つからなかったのですが、 Mark Volkmann氏のページより Clojure Coding Guidelines を和訳してみます。 インデントはスペース2個分。 関数名と変数名は良く考えること。良く使われる略語は避ける。一文字変数名は次の場合だけ:インデックスの i 、デカルト座標系の x, y, z 真偽値を返す関数名は ? で終わる。 コメントを書くよりもコードが明瞭になるように書き直す。コメントはそれができなかったときに残すもの。 一行に登場する関数は5つまで。 関数定義の際のネストは4段階まで。これを守るためにはローカル変数で中間値を保持したり、別の関数に分割する必要もでてくるだろう。 匿名関数は1行で収まる簡単な定義のみに使う。それ以外はプライベ

  • 1