Presentation given at the 2013 Clojure Conj on core.matrix, a library that brings muli-dimensional array and matrix programming capabilities to ClojureRead less
Presentation given at the 2013 Clojure Conj on core.matrix, a library that brings muli-dimensional array and matrix programming capabilities to ClojureRead less
package pokemiku; import javax.sound.midi.MidiDevice; import javax.sound.midi.MidiSystem; import javax.sound.midi.Receiver; import javax.sound.midi.ShortMessage; import javax.sound.midi.SysexMessage; import javax.xml.bind.DatatypeConverter; public class PokeMikuSample { public static void main(String... args) throws Exception{ try(MidiDevice d = getDevice()){ d.open(); Receiver r = d.getReceiver()
マクロを便利に使う マクロは自分で作るもんなのか?Clojureでばりばり書いている人からすると愚問で、「Yes」としか言いようがない質問だろうけども、前に、とある場所でClojureについてのLTをしたときに、「マクロとかagentとかは実際に使うもんなんですかね?」と質問を受けたことがあります。 『フレームワークで使うテクニックなんかはフレームワークを「使う側」が知る必要はない』みたいな話の延長なのか、あるいは、そもそも現場での使いどころがイメージできない、ってことなのか、つかみ損ねましたが、実例があると分かりやすいのかなあと思いまして、実際に自分はどういう風に使っているのか、ここに書いておこうと思いました。 文法をつくれ!やっぱり、実際に使う一番多い用途はこれだとおもうんですよね。新しい文法を作る。 とはいえ、ほとんどのClojureのテキストブックには、マクロに対するClojure
スレッドマクロを整理する スレッドマクロって?スレッドマクロ(threading macro)は、Clojureのソースを人間に読みやすい形で書けるマクロで、現在のClojure 1.5.1には、結構な数のが用意されています。1.5で初めて追加されたものもありますし、まとめておくと、今後Clojureを始める人にも役立つかもしれないなあってことで、ブログ記事に書いておくことにしました。1.5で導入された新しいスレッドマクロも含めて既に知っている人には役に立たないのであしからず。 「スレッド」マクロといっても、並列プログラミングのスレッドとはまったく関係がないです。Clojureの -> や ->> のような、矢印系マクロの総称として使われています。Clojure 1.5.1では、次のスレッドマクロがあります。 ->->>as->some->some->>cond->cond->>基本は -
Programování jako zábavná hra! Děti, ale i dospělí se mohou naučit kódovat velice přístupnou formou, která bude všechny bavit! Foto: Pixabay Základy programování Programování se může zdát jako složitá věda, ale s dnešními dostupnými nástroji se tomuto řemeslu může naučit každý. Samozřejmě záleží, jaké k tomu má kdo dispozice a kolik času je ochoten učení věnovat. Už ale dávno neplatí, že je progra
Light Table 0.6.0 からオープンソースになり、さらにプラグインに対応したとのことで今、Light Table 熱がすごいですね。 プラグインについての詳細なドキュメントはまだ出てないようですが、次々と新しいプラグインが作られているのを見て自分も負けてられないと思い、 勉強のために既存のプラグインを参考に簡単なプラグインを作ってみました。 trailing-whitespace†https://github.com/liquidz/trailing-whitespace末尾に空白があった場合にそれを見やすく表示してくれるプラグインです。 元々 Light Table には :lt.objs.editor.file/remove-trailing-whitespace という設定があり保存時に末尾空白を削除してくれますが、例え保存してもファイルを開き直さない限り末尾空白が残って
PerlでWebAppの開発に必要なN個のこと - Islands in the byte streamのClojure版です。 あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずClojureについて知っていることを書いた。←ここまで引用 パッケージマネージャ パッケージマネージャというか、プロジェクトマネージャであるLeiningenをつかいましょう。 このツールはもうデファクトスタンダードです。 アプリケーションサーバー WebサーバーへのインターフェースとしてはRing というのがデファクトスタンダードとなっている。バックエンドとしてはJettyやTomcatなどが利用できる。またHerokuやAWSへのデプロイも可能だ。Ringを使う利点は多用な
この記事は、Clojure Advent Calender 2013 (全部俺) 2日目です。 定期的にClojureのタイムラインを見ていたりするのですが、どうやら皆が引っかかりやすい部分の一つとして、どうやらrecurという存在があるようです。recurとは、loopと対応して、再帰的な構造を擬似的に作り出すための構文です。例えば、1から100を出力するための関数を、loopとrecurで書くと、下のような構文になるでしょう。 (defn one-to [] (loop [x 1] (if (> x 100) nil (do (println x) (recur (+ x 1)))))) さて、このように強力なループを生成するloopとrecurの構文なのですが、しかしどうやらClojureのタイムラインを見ていると、このrecurについて躓いてしまう人が多い印象を感じます。 そこで、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く