λx. x K S K @はてな

このブログ内に記載された文章およびコードの著作権は,すべて Keisuke Nakano に帰属します.

e の一部のネタバレ

jijixiさんのところで「誰かが100B切ったらヒントを公開」することを宣言してしまった矢先に, airoboさんが95Bを出してくれたので,一部のネタをバラします. と思ったら,jijixiさんも94B出しましたね.

謎のバイナリ

m.ukaiさんに追い抜かれまくりですが,とりあえず無関係なネイピア数を100(+1)桁出力する問題の記録を更新. ある(インチキな?)方法を使うと,jijixiさんの直接出力するプログラムよりは短くなります. 今のところ79Bですが,まだまだ縮むかもしれません…

Do uble-b lind review

最近,いろいろな国際会議で採用されている do uble-blind review(査読者にも著者名を知らせない)方式ですが, それぞれ微妙にスタンスが異なるようです. SIGMOD 2007 の場合, Despite the anonymity requirements, you should still include relevant p…

ネタばらし(fibonacci.ml)

m.ukaiさんに追いつかれたのでバラします. statisticsが全く同じなので,たぶん名前以外は同じだと思います.

MSOTT = MTT* ∩ LSI

Sebastian Maneth 氏とのディスカッションで Macro Tree Transducer(MTT)の合成がうまくいく場合について新たな発見. これは使えそうなのでメモしておく.

ネタばらし(csort.ml)

標準入力の文字列を昇順に並べ替える問題. m.ukaiさん曰く, トップはどうなってるのかさっぱり分かりません。 とのことでしたが,大したテクニックがあるわけではないので公開してしまいます.

ネタばらし(primes.ml)

m.ukaiさんやshinhさんがprime numbersのネタばらしをしているので,こちらも公開しておきます.

e 再び.

最近ゴルフネタが多くてすみません. ネイピア数を100桁求める問題がOCamlにとってあんまりに酷な(というか100桁埋め込んだ方が短くなってしまう)ので, Numモジュールを使うバージョンも名前を変えてエントリーしておきました. ついでに謎のバイナリもジ…

Sebastian Maneth氏来日

成田まで迎えにいってきました.ふー. 明日から濃い10日間になりそうな予感.

Booklet Printing

調子に乗って問題を投稿してしまいました. まぁ,110ページの文書をこんな順序で印刷してもホッチキスなどでは止められないかもしれませんが…(止めても非常に嵩張りそう). 参考までにこのサンプルを出力したRubyのプログラムを投稿しておきました.

invert case

ああ,もう縮まないと信じていたのに縮んでしまいました(62B). ちなみに,問題とは無関係かもしれませんが, char_of_intやint_of_charを使うなら, Char.chrやChar.codeを使うほうが短いです. [追記] そして,直後に61Bにする方法を発見.

フィボナッチ

m.ukaiさんの記事より, この前に持っていた直接算出するやつは縮むのかもしれないが、どうやって? 私のは「まじめに計算するやつ」です.というか,m.ukaiさんのような直接算出するプログラムは全く考えていませんでした. ちなみに,"%.0f" は "%.f" でよ…

あなごる

なるものが,巷で流行っているらしくOCamlで何問か参戦(フィボナッチに関してはRubyにも参戦). 要は,指定された入出力を振る舞うプログラムを短いバイト数で書いてみろという話. 現在のところ,フィボナッチや99shinhやinvert caseなどで一時的に一位を…

ToPSのご案内

告知です. MSO Logic definable tree transducers (MSOTT) というのは,合成で閉じている Tree Transducer の中でも大きなクラスの一つで, 大雑把に言えば一回参照の属性文法と同じ表現力を持っています. この手の結果は,属性文法合成に基づく融合(desc…

(続) Haskell Bowling

前にも書いた通り,Haskell Bowlingは間違っている上に分かりにくいわけですが, kinaba氏が別の定義を紹介しています.この方がスマートだし,なにより正しいプログラムです. たとえば, 1 2 3 4 5 6 7 8 9 10 X _ X _ X _ X _ X _ X _ X _ X _ X _ 3 3 _ …

TT-closure と admissibility

こちらにコメントで書くべきなのか悩んだのですが, トラックバックを送ることとしてこちらに書きます. (こういうときってどっちにするべきなのかよくわからない…) R^TTを計算したり、RがTT-closedであることを証明するのは非常に大変(元の目的である文…

パラメトリシティとseq

ググっていたら見つけたエントリ「GHCは気色悪い」について. これは GHC が気色悪いのではなくて,seq が気色悪いのではないかと. seq があると,パラメトリシティを維持するためには論理関係 R が admissibile(連続かつ正格)なだけでは不十分で bottom-…

帰朝報告

この日記だけ見るとまだ帰っていないような感じですが,一週間ほど前に帰国しています. 溜まっていた仕事の処理などで風邪をこじらせてしまい,週末は布団で過ごしてしまいました. 発表の内容に関しては,こことかここを参照してもらうとします(え?)*1…

POPL / PLAN-X 2007

明日からニースに行ってきます. 前にも書いた通り, 発表は共著者なので気楽に行ってきます.

ハサミ型シュレッダー

(注文したのは年末だが)新年一発目の買い物. なかなか優れもので,家では結構役立ちそうだ. しかし,今調べたら,バージョンアップしているらしく, 9連刃になっているらしい. よく調べずに5連刃を買ってしまった.ううう.

スーパー pre 記法

スーパーpre記法というのが OCaml にも対応しているらしい. サポートされている言語が妙に多いけど,Vim のシンタックスファイルから導出してるのかな. このリストとほぼ一致してるし. それはさておき,せっかくなのでその記法を使って小ネタを一つ. uni…

LablGL でオロイド

ここを見て思い出したのだが, 昔 lablGL でオロイドを描いて転がして遊んだことがあった. オロイドとは,「2つの直角円錐を底面で貼り合わせ,軸を通る断面(正方形になっている)を 90 度ずらしてできる立体」で 一度転がすだけで全ての面を接地させられ…

PLAN-X 2007

受理されたようです.発表するのは共著者の予定. 前の日記でも少し触れたが,最近Coqにハマっている. とりあえずtree transducer関連のものを片っ端から定式化しているけども, まだgoal-directedの証明に慣れてない所為かcut規則を使いまくっている. 知…

Haskell Bowling

こちらから引用. うーん,この定義って 第9フレームがストライクで 第10フレームが2投(1本以上9本以下)で終わった場合, 正しい得点を返さないような気が. OCamlで書けばこんな間違いしないのに(嘘). [追記] こちらに続きがあります.

APLAS 2006

参加された皆さんお疲れ様でした. さすがに,2泊5日などという頭の悪いスケジュールを組んだのは私だけだったようで. 今回最も印象に残ったのは Tree transducerの業界で著名なSM氏と議論ができたこと 帰りの京成線でのRA氏によるCoqのチュートリアル どっ…

出張

明日からシドニーへ出張.2泊5日. 自らの選択とはいえ,なかなかのハードスケジュールだ. しかも発表は最終日の午後だという. それでも,初めての南半球なので満喫してこよう.

仙台の報告

O堀先生の軽量関数融合の良さがだいぶ理解できた. この話は, 既存の方法で可能な関数融合(の多く*1)を統一的に扱うことができ, 尚且つ有限回の単純なステップの自動変換で実装できるということを示した点が素晴らしいのだと思う. その意味では,「他の…

記号ゴルフ

唐突だが現実逃避のために Ruby の記事を書いてみる. 巷(?)で記号ゴルフというのが流行っているらしい. とりあえず記号のみの Ruby のプログラムで止まらないものを書くことにチャレンジ.`#{''<

がんばればできる

こちらから勝手に引用. Noneというコンストラクタを持つデータ型を定義してしまうと、option型をどうがんばっても使えなくなる。 その上書き定義の前に何か書き加えてもいいんであれば簡単に回避できるけど, 定義した後となるとできなさそうな気もする. …

コードゴルファー猿

http://codegolf.com/ コードの小ささを競うプログラミングコンテストらしい. ランキングを見てみると日本人らしきエントリーがちらほら. 日本に優秀なプログラマが多いのは喜ばしいことだ. それとも,こういう問題が日本人向きなだけなのだろうか?