2013-04-01から1ヶ月間の記事一覧
こんにちは。とりあえず、コンパイルができなかった問題をさらに追ってみます。この辺のページを確認したところ、原因は「Classファイルの出力先ディレクトリが存在しないから」でした。 ・・・というか、である調でブログを書くこと自体が結構厳しいことに…
ClojureのオブジェクトはJavaに対応するものがあればそのインタフェースを実装している。 Clojureのデータ構造はJavaのコレクションAPIを実装している Clojureの関数はRunnableとCallableを実装している ・・・後者は中々。このあたりやはり並列実行用の言語…
次は「ファブラボ鎌倉の挑戦」。 1.講演内容 結論としては、 「今後ものづくりにソフトウェアとハードウェアの垣根はなくなる。 ソフトウェアでハードも作れるようになる。」15年に一度、技術が社会とであう。 パーソナルコンピュータ(1980) インターネッ…
こんにちは。今日はQConTokyo2013に来ています。 まずは、KeyNote1 プログラミング・スタイルと私たちの脳」から。とりあえず講演の中のメモをそのまま貼り付けたもののため、 内容的なまとまりはいまいちですし、抜けもあるとは思いますが、とりあえずとし…
こんにちは。徐々に書けることが広がってきてはいますが、まだ4分の1。 とりあえず地道に続けます。前章で述べたJavaの呼び出しで述べた方法を使ってJavaを呼ぶのがClojureでは普通。 これで基本的には十分に高速のはずだが、さらに高速化を行うことができ…
こんにちは。とりあえず構文の説明が終わり、後は実際に機能をコードを書きながら確認していく形になりそうですね。ClojureコードはJavaバイトコードに直接コンパイルされ、Javaを呼び出す際に変換が挟まれることはない。 Clojureは直接JavaのAPIを活用でき…
こんにちは。ついに2章も最後まで来た形になります。 とりあえず概念が大量に出てきたのにたいして書いた量がいまいち不足しているため消化不良な感もありますが・・・ まぁ、それはその先の章でも書き続けることで対処できるでしょう。では、続きです。メ…
というわけで、続きです。これまで見てきたが、forループがないし、直接変更可能な変数というものも登場していない。 単に、関数とインプット、アウトプットがあるだけという非常にシンプルなIPOを示すのみとなっている。・・・というのがJava辺りから入った…
なんか徐々にまともなプログラムを書くためのパーツがそろってきたように思える今日この頃です。 では、続きです。Clojureではフロー制御の方式はif、do、loop/recurでほとんど賄える。 1.ifによる分岐 Clojureのifは最初の引数を評価し、それが論理的に真で…
では、続きです。オブジェクトをdefやdefnで定義するとオブジェクトは指定した名前にバインドされる。 下記の例ではuser/fooに10がバインドされる。 user=> (def foo 10) #'user/foo user=> foo 10 user=> user/foo 10 ここで束縛される場所は「var」と呼ば…
こんにちは。 では、さっそく実際のコードを書いてみましょう。今回の範囲は「2.2 リーダマクロ」「2.3 関数」です。 この辺を突破すれば多少は読めるのではないかと期待しながら入ります。。。 2.2 リーダマクロ リーダマクロ≠マクロであり、 Clojure…