タグ

clojureに関するalluserのブックマーク (10)

  • Clojureにも型の恩恵を〜Typed Clojureの体験〜

    => (merge-with + {:a 1 :b 2} {:a nil :b 2}) NullPointerException clojure.lang.Numbers.ops (Numbers.java:961) これは2つ目のマップの:aの値がnilなため,(+ 1 nil)を実行しようとして失敗してヌルポを起こしています.現在のClojureの問題点として,エラーメッセージがソースコードと対応しておらず意味不明であるという点があるために,このような単純なバグでも発見するのに苦労しました.このバグをcore.typedにより退治していきたいと思います. 最初の型チェック core.typedの中には,cfという式の型をチェックする関数が存在します.(cfはcheck-formの略語のようです)これでmerge-with +の型をチェックしてみましょう.簡単化のため,引数のマップは2つ

    Clojureにも型の恩恵を〜Typed Clojureの体験〜
  • Clojure を始めたいけど、周りに Clojure 使ってる人いないし聞ける人いないからなーと思っている人たちへ - (define -ayalog '())

    「 Clojure が素晴らしい言語であるのはなんとなくわかった。興味はあるんだけど、何処に実際に使っている人たちいるの?」とか「ちょっと分からないところがあるから聞いてみたいんだけど、 QA サイトに投稿するほどじゃないんだよなー」という人たちが一定数きっといると思うんだけど*1、そういう人たちは Slack の Clojure 使いが集まる場所に是非きてください。 以下のページから登録できます(ちょっと時間かかるけど、一日以内でだいたい招待されると思う)。 ここに #clojure-japan というチャンネルがあり、そこには日語の通じる Clojure を日々業務で使っていたりする人が多くいます*2。 勿論、 #clojure, #clojurescript, #cider などといった特定のトピックに対応したチャンネルもあるので興味ある人は覗いてみてもいいかと思います(ローカルチ

    Clojure を始めたいけど、周りに Clojure 使ってる人いないし聞ける人いないからなーと思っている人たちへ - (define -ayalog '())
  • Clojure で依存関係の解決に潜むワナ? - (define -ayalog '())

    仕事中に盛大にハマって、最終的に一緒にやってる Clojure チョットデキルマンに助けてもらった。 Clojure のライブラリを Leiningen や Boot に含める場合、次のような表記を用いる。 [group-id/name version] Leiningen や Boot はこれを group-id/name でひとつのライブラリとみなし、もし数あるライブラリの内部で使われているライブラリが重複した場合には、後勝ちで依存性が解決されていく*1。 なので例えば foo/piyo というライブラリが a/nyan 0.9, a/nyun 0.8 というライブラリを依存関係に含んでいて、 bar/puyo というライブラリが a/nyan 0.1, a/nyun 1.2 というライブラリを依存関係に含んでいる場合に、 foo/piyo -> bar/puyo という順番で依存

    Clojure で依存関係の解決に潜むワナ? - (define -ayalog '())
  • (Boolean. false) の Clojure での扱い - (define -ayalog '())

    Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot にあるように Clojure の中で false として扱われるのは nil と false それ自身だけ。驚くことに全くもってその通りで、 (Boolean. false) は false じゃないんだ。 user=> (if (Boolean. false) 1 2) 1 user=> (not (Boolean. false)) false user=> (false? (Boolean. false)) false かたや、こちらではどういうわけか false になる。 user=> (class false) java.lang.Boolean user=> (= false (Boolean. false)) true これはとても直感に反している。こう

    (Boolean. false) の Clojure での扱い - (define -ayalog '())
  • 1 ヶ月間 Clojure を書き続けて感じたこと - (define -ayalog '())

    まえがき 日で Clojure を使い始めた 1 人の Clojure プログラマとして、この 1 ヶ月で感じたこととか Clojure をとりまく環境とか書いておきたいなと思う。 日では流行ってない? 2010 ~ 2011 年頃、空前の Clojure ブームがあったらしい。原因は「 Programming Clojure 」の翻訳である「プログラミング Clojure」が 2010/01 に出版されたからだと思う。 プログラミングClojure 作者: Stuart Halloway,川合史朗出版社/メーカー: オーム社発売日: 2010/01/26メディア: 単行(ソフトカバー)購入: 10人 クリック: 338回この商品を含むブログ (72件) を見る だいたい、日語で Clojure の情報を検索しようとすると 2010 ~ 2011 年頃の古い記事が結構ヒットしてく

    1 ヶ月間 Clojure を書き続けて感じたこと - (define -ayalog '())
  • Light Table

    ON WHICH PLATFORM WOULD YOU LIKE TO INSTALL LIGHT TABLE? For Mac OS X, see the installation instructions.

  • ClojureScriptという選択肢

    ClojureScriptという選択肢 Presentation Transcript ClojureScript という選択肢 2013/10/19 大なごやJS VOL.7 前田康行(@maeda_) 自己紹介 前田康行 (@maeda_) 名古屋在住のフリーランス 好きな言語 •  Scala •  Smalltalk 近況 •  ひょんなことからRuby仕事してます。 今流行りのaltJS 今回のテーマ ClojureScriptはこっち側ですよって話 XX言語で書いて、 XX言語で書いて、 JavaScriptに変換できる <<< (超えられる壁) <<< JavaScriptの代用となる 大事な観点 言語的なメリットだけでなく、既存のJSのエコシステムが活用できる or 代用があるか? ・既存のライブラリやAPI(JSONPとか)との親和性 ・開発周りのツール類(Gruntと

  • MacでClojureのセットアップ - あと味

    追記 手順が抜けて手落ちだったし、これとほぼ同じ事をもっとわかりやすく書いてある記事があったので、ものすごく恥ずかしくなってきました... 以下の記事を参照された方がいいです。ブックマークも以下の記事にしていただいた方がよろしいかと! MacでClojure + Vim環境を作る - komagata 以下、書いた記事を一応残しておきます。 Macbook ProにClojureのセットアップをしました。 特にVimClojureの導入が、調べてもなかなか簡単な方法がなくて大変だったので、試行錯誤しながら確認したベストな解決策をメモとして残しておきたいと思います。 環境 Mac OS X Lion Vim バージョンは7.3 homebrewでインストールしたもの *1 プラグインはNeoBundleで管理 Macのパッケージ管理 homebrewのみでMacPortsは使ってない ちなみ

    MacでClojureのセットアップ - あと味
  • Leiningenを使ってClojureのREPLを起動 - No Programming, No Life

    ClojureやるならLeiningenが簡単だよということで、Homebrewを使って、インストールからREPLを起動するまでをやってみたのでメモ。 (動作環境: Mac OS X 10.6, Homebrew v0.8) まずはHomebrewでleiningenのインストール $ brew install leiningen ==> Downloading http://github.com/technomancy/leiningen/tarball/1.5.2 ######################################################################## 100.0% ==> /usr/local/Cellar/leiningen/1.5.2/bin/lein self-install ==> Caveats Standalone

    Leiningenを使ってClojureのREPLを起動 - No Programming, No Life
  • ClojureのREPLの終了方法 - No Programming, No Life

    ハッカーと画家を読んでたらLispやりたくなってきたのでClojureをいじり始めてみました。とりあえずプログラミングClojureを片手にREPL(対話モード)で遊んでいたんですが、終了方法が書いてなかったのでCtrl+Dなどで終了させていました。 ググってみたところ、こちらに答えがありました。 「30」と表示されます。REPLを終了させるためには、 (. System exit 0) と入力します。Systemクラスのexitメソッドに引数0を付けて実行するということみたいです。 Clojureを入れてみる - 自称スーパーハッカーの適当なプログラミング雑記等 なんとまさかのSystem.exit(0)ですか。もうちょっと簡単なエイリアス的なものはないんでしょうかねぇ…ということでこんなの書いてみたらいけました。 user=> (defn exit [] (. System exit

    ClojureのREPLの終了方法 - No Programming, No Life
  • 1