標高+1m

Don't be rational.

CLOSオブジェクトのシリアライズ

これ便利。 (define-class <serializable> () ()) (define-method write-object [(x <serializable>) out] (let* ([class (class-of x)] [serializable-slots (filter (^s (get-keyword :init-keyword (cdr s) #f)) (class-slots class))] [slot-names (map car serializable-slots)] [in</serializable></serializable>…

クラスの使い時

TL;DR だいたいみんな知ってることだと思います。On Lispの「いつオブジェクトを使うのか」に言いたいことだいたい書いてあります。 背景 前にサーバーサイドMVCって記事で、クラスはせっかくモジュラーな関数をそうじゃなくするから基本的に悪だってちろっ…

こんな言語が欲しい

Carrotに静的型付けを実装していくうちに、あれを表現するには代数データ型が必要だ、あれにはシノニム、あれには型クラスなりインターフェースなりが必要、そうするとimplementsだかinstanceだかみたいなのも必要になるし、って結局どんどんHaskellに近づい…

sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す

Stop Writing JavaScript Compilers! Make Macros Insteadを読んで、sweet.jsを使ってみた。 解決したい事 JavaScriptでは非同期処理が多いので、継続渡しスタイルのコードばっかりになるのだけど、みんなこれをcallback hellとかpyramid of doomとか呼んで…

Carrotに別名を導入した

昨日の記事で、 例えば、真偽値はa -> a -> aな関数にして、型はBoolにしたいけど、 そうしちゃうと=cを使っても分岐の左右が同じ型かのチェックができなくなっちゃう ということを書いたんだけど、とりあえずこのBoolについての問題はシノニムを導入する事…

Carrotの変な型システムについて

年末年始は結局だらだらと本を読んで過ごしてて全然Carrotを触ってなかった。昨日今日と頑張ったらとりあえず動く型チェッカができて、わりかし欲しいものに近付いた気がする。 今はCarrotを、クロージャといくつかの基本型しかない、型なしλ計算計算機みた…

作詞しました

歌っていいですよ

初夢

宇宙が舞台 楽屋でなにかの発表の出番を待っている 隣に中学で同級生だった子に似た子がいたから声をかけてみるも別人だった サンダーバードっぽい舞台セット ブラックユーモア 犯罪すれすれの商売(宇宙株の再利用) 巨大でひしゃげた望遠鏡を火星に取りにく…

2013年まとめ

色々あった。 前回のあらすじ 2011年 ニュージーランドのLynfield Collegeを卒業してた。 2012年 日本の大学を数個受験して全部落ちてた。 PILOTに雇ってもらってた。 LittleSmallscript作ってSmalltalk勉強会に行ってた。 本編 1月 散歩してた。 Carrotの前…

Smalltalkビアバッシュで現実世界の物体のデジタル表現について発表してきました

あとでもうちょい詳しく書きます。

記憶で視覚を拡張する

neko良い

clojure-android/lein-droid · GitHub ClojureでAndroidアプリが作れるって触れ込みのnekoを使ってみてる。lein-droidってleiningenプラグインを使えばandroidアプリの雛形を作ってくれて、あとはJavaのクラスなりnekoのユーティリティ関数なりを使ってアプ…

ディアスポラを買った

久しぶりにSFを買った。グレッグ・イーガンのディアスポラとアーサー・C・クラークの幼年期の終わり。幼年期の終わりは読まなきゃっていう義務感から買ったけど、ディアスポラの方はイーガン大好きだからとても楽しみ。 イーガンといえば、ディアスポラも似…

化ける!S式

(この記事はLisp Advent Calendar 13日目のためのエントリです。) こんにちは!冬休みに日本に帰るときに経由しているロサンゼルスの空港で書いています。アメリカ時間ではまだ13日ということで遅刻していないと言い張らせてください。 Lispアドベントカレ…

wasを使ったら負け

このセメスターに取った英語(English 1A)の授業で教授が口酸っぱく言うのがbeの変化とかhaveとかを使うなってことで、使うと減点される。代わりにStrong action verbを使えって言われてて、これを徹底したら勢いがある文章になって良い。

日本行きます

冬休みに日本に帰ることにして昨日チケットを取った。こっち来た時はお盆シーズンでしかも1週間前にチケットを取ったから片道で20万ちょいかかっちゃったけど今回は往復で11万強で取れた。 帰って一番したいのはCitibankに口座開けてお給料の振込先をそっち…

撫子からにんじんへ

トイ言語Nadekoの名前をCarrotに変えた。Schemeの一番最初のコンパイラの名前がRabbitだったらしいので割とお洒落な気がする。うさぎはにんじんが好きっていうのだけじゃなくて、 Rabbit Carrot で同じ文字数な上に文字がダブる位置まで一緒だから超お洒落だ…

A Tree That Burns Itself

オースラトリアの中央に広がる砂漠地帯には、点々と小さな林がある。こういう林に生えているのは乾燥に強い木なんだけど、そういう木の一つに、現地の言葉でカラジョンと呼ばれる一風変わった木がある。なんとこの木は自殺をするのだ。 カラジョンは500種類…

Meteorすごい

みなさんこんにちは。 最近僕のfeedlyにMeteorの記事がいくつか流れてきたので、気になって使ってみました。 MeteorはJavaScriptのフルスタックWebフレームワークです。 詳しい説明はこちらの連載がわかりやすかったです。 体感!JavaScriptで超速アプリケー…

アメリカに来たら頭が空っぽになった

にゃんぱす〜〜 ニュージーランドで高校行ってた時も、日本でプログラマやってたときも、わりかし葛藤を抱えてて、朝も夜も常になにかしら考えてたんだけど、こっちに来たとたん頭がすっからかんになったよ。 みんなも頭がぶっ壊れそうになったらお金溜めて1…

アプリ全体の状態を持つこと

ClojureScriptをちょこちょこ使っています。最近はもっぱらcore.asyncとかFRPとかでアプリケーションを作っていたんですが、PastaやWebFUIでやっていた、"アプリ全体の状態を更新する関数と、状態からUIを作る手続き"という仕組みが恋しくなっています。この…

Nadekoの文法いじりました。

実験用に去年書いた、遅延評価でカリー化されたS式の言語をちょこっといじりました。9月25日以前: (:= (fact n) (= n 0 1 (* n (fact (- n 1))))) (show (integers -map (-> (x) (fact x)) -take 5)) ;;これはλを見せるための例.ほんとはλで囲わなくても一緒…

ニッキ

8/16(金) 飛行機で、成田->LA->Sacramentoと飛んだ。成田-LA間はオーバーブッキングのおかげでビジネスクラスに格上げしてもらった。サクラメント市街をふらふらして一晩明かす。シートポストが緩んだコスタリカ出身の人に六角レンチを貸して友達になった。8…

オーケー、僕はアメリカに行きます

たった今最後の不確定要素が消え去ったので報告します。今週の金曜日からアメリカは西海岸のSFからちょびっと内陸に引っ込んだサクラメントという街に留学します。Communityというテレビシリーズを見てから気になっていた、コミュニティーカレッジという教育…

タイトル

夜だけ開いている図書館 動画のシークバーは実時間を進める

善行が強制される世界

善行がポイント制になっていて、そのポイントがマイナスになるとなにかしらの社会的不利益を被る世界。労働が財産を発生させ、財産がマイナスになる(借金)となにかしらの社会的不利益を被る世界。

サーバーサイドMVC

まずクラスは使わない。なぜなら必要ないから。せっかくモジュラーな関数をわざわざそうじゃなくする意味がない。クラスはレアケースを除いて基本的には悪。モデルはRead系のAPIとWrite系のAPIで名前空間を分ける。

最近のPHPが割と良くてびっくりした

PHP

Disるのに忙しくて最近のPHP(5.4以降)のこと全然知りませんでした。 今日触る機会があったんですが見直しちゃいました。変なフレームワークさえ使わなければjsとかrubyよりまともに書ける気がする。びっくりした点、良い点 タイプヒント。 型が合わなければ…

メモ

Blocky.io Light Table Opa Quipper

遅延評価世界

プレイヤーが一人なら地球全体を常に走らせておく必要はない 地域毎に分割 それぞれの地域に固有のシードを付与 システムは時間(ステップ数)をもつ ある地域が知覚される度にシードから時間ステップまで各ステップの変化が比較的ゆるやかなセルオートマトン…