タグ

ブックマーク / boxofpapers.hatenablog.com (3)

  • いまどきのClojureのはじめかた - 紙箱

    Clojure 1.9あたりから、Clojureの始め方が大きく変わったのですが、その辺りをまとめた記事が見当たらず、すでにClojureをやってる人しか知らない状態っぽいので、急ぎで書いてみました。 大きく変わったのは、 clojure および clj というコマンドが導入されたことです。これまではClojureの実行には Leiningen のようなビルドツールを使うのが一般的で、スクリプト的なコードを書くのには向いてない印象でしたが、1.9からは、 clojure コマンドに .clj ファイルを渡すと実行できるようになりました。また、コマンドが用意されたことで、シェル・スクリプト冒頭に #! で clojure コマンドへのパスを書くことで、シェルスクリプトとしてClojureコードを記述できるようになりました。 この二つのコマンドをインストールする手順が、環境ごとに用意されていま

    いまどきのClojureのはじめかた - 紙箱
    pochi-mk
    pochi-mk 2018/10/07
  • Clojure + core.async による非同期&並列プロセスの世界 - 紙箱

    core.asyncによる非同期プログラミング core.async はClojure用の、事実上標準の非同期プログラミングのライブラリです。 core.asyncの一番わかりやすい説明は、「Go-langのchannelのClojure版」という言い方でしょう。goマクロによってgo-blockを作り、そのブロック内が非同期に動きます。このブロックが常駐すれば、軽量プロセスというやつになります。プロセス同士のやりとりをする口として、チャネル(channel)があります。core.asyncを使ったプログラムでは、チャネルへの入出力を介して非同期軽量プロセスにデータを処理させることで、全体のシステムを作り上げます。 goマクロはステートマシンを作り、チャネルへの入力があるたびにマシンが1回転します。この一回転時に、チャネルを待ち受けていたgoブロックにスレッドが割り当てられ、次のチャネル入

    Clojure + core.async による非同期&並列プロセスの世界 - 紙箱
  • Clojureの世界観 - 紙箱

    ブログを書くのは久々です。 京都で小さな会社をやっていて、自社開発でClojureとClojureScriptを使用し続けて、概ね3年くらい使い続けています。その過程で、Clojure自体にも小さいながらソースレベルの貢献ができたりして、オープンソースプロジェクトとしても面白かったのですが、もともとオブジェクト指向言語ばかりやってきたところから、Clojureという、まったくオブジェクト指向言語ではない言語に飛び込んだ経験や考えたことなんかを、ブログにストックすると、何か他の人にも役立つこともあるかと思って、ブログに書くことにしました。 このところずっと、自社の仕事とは別に、恵比寿にある 株式会社ユーザベース さんのお仕事に参加しています(私が法人を作る前からなので、もう5、6年くらいになります)。そちらの方でもClojureやシステム設計の話(プレゼンなど)などを何度かさせてもらったり、

    Clojureの世界観 - 紙箱
  • 1