「ほっ」と。キャンペーン

安敦誌


つまらない話など
by antonin
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
検索
最新の記事
水分子と日本人は似ている
at 2016-06-04 01:49
ほげ
at 2015-06-05 03:46
フリーランチハンター
at 2015-04-17 01:48
アメリカのプロテスタント的な部分
at 2015-04-08 02:23
卯月惚け
at 2015-04-01 02:22
光は本当に量子なのか
at 2015-03-17 23:48
自分のアタマで考えざるを得な..
at 2015-03-06 03:57
折り合い
at 2015-03-01 00:19
C++とC#
at 2015-02-07 02:10
浮世離れ補正
at 2015-01-25 01:21
記事ランキング
タグ
(294)
(146)
(120)
(94)
(76)
(64)
(59)
(54)
(45)
(40)
(40)
(39)
(32)
(31)
(28)
(27)
(25)
(24)
(22)
(15)
最新のコメント
>>通りすがり ソ..
by Appleは超絶ブラック企業 at 01:30
>デスクトップ級スマート..
by 通りすがり at 03:27
7年前に書いた駄文が、今..
by antonin at 02:20
助かりました。古典文学の..
by サボり気味の学生さん at 19:45
Appleから金でも貰っ..
by デスクトップ級スマートフォン at 22:10
以前の記事

<   2012年 08月 ( 5 )   > この月の画像一覧

雑記

エーテルについて、好奇心について、命題論理とか述語論理とか様相論理とか集合論とかについて、ぼちぼち考えていた。ヒッグズ粒子も観測されたことだし、そろそろ超多時間論より下位に来るエーテルレベルの話が活発になってもいい時代なんじゃないかと思う。M理論なんかはまったく意味がわからないけれども、いい本があったら読んでみたい。

森田さんが新書で出した本を見つけたので、読んでいる。まだ途中までしか読んでいないが、ベルの定理とその周辺がわかりやすく説明されていたりして、読んでいて楽しい。良識的な物理学者が無批判に信じているような定説を、科学哲学の人らしく正確な位置づけで書いてくれるので、読んでいてストレスを感じなくていい。ネット接続が回復してからネットに入り浸って紙の本から離れてしまっているが、少しずつまとまった読書ができる習慣を取り戻して続きを読んでいきたい。

量子力学の哲学――非実在性・非局所性・粒子と波の二重性 (講談社現代新書)

森田 邦久 / 講談社



Brainfuck用ライブラリの構築も、目立った進捗はないけど、ぼちぼち考えている。入出力命令の接続先を、ライブラリ用スタックへの push / pop と標準入出力で切り替える方式にしてみたら、少しだけBFプログラムが書きやすくなった。世の中には素のBFでマンデルブロ集合の計算とかやっているすごい人がいて、驚きつつ感心した。その人はCプリプロセッサでメタプログラミングして、すべてマクロによる記述でBFのソースを生成していた。私もまずはマクロというかメタ言語というか、そういうものを書くところから始めてみた。あんまりマクロ機能を強力化しすぎるのは言語間コンパイラを作ることにしかならないので程々にしないといけないのだけれど、同時に楽しい作業でもある。

Index of /brainfuck/utils/mandelbrot

インタプリタ設計もいろいろ考えている。マクロを使ったBFのソースというのは、うっかりするとすぐメガバイト単位に膨張してしまうのだが、結局繰り返しが多いので圧縮をかけると数百分の1くらいにまで小さくなる。ソースが巨大でも、文法解釈して冗長度を取り除いたあとの中間言語は非常に小さくなるだろう。ゼロクリアは普通 "[-]" と書くが、このあたりも繰り返しをゼロ代入へ最適化できるだろう。どれくらい巨大なソースを実時間で動かせるか、なんてのも楽しそうだ。

BFに公開するメモリは 32bit int の配列で行こうと思っているけれど、メモリ空間は広く使いたいので、インタプリタは 64bit アプリを前提としてみたい気もしてきた。BFのアドレス空間を 32bit 値でポイント可能な4ギガワードとすると、そこに 32bit int を割り当てると全部で16GBになる。幸い今度のノートPCの主記憶は16GBあるので、いい実験になりそうだ。実際には通常のリニアメモリが1GW、ライブラリ用スタックが1GW、32bit int 以外のオブジェクトを確保できるヒープメモリ用アドレスを1GW取り、どの記憶領域も動的に確保しようと思っているので、単純計算はできないが、2GBで終わりというのはつまらない。また近いうちに続編を書けるといいけど、場合によっては数年かかるかもしれない。

今度の火星表面探査機の名前は "Curiosity" というらしい。好奇心が持てるというのは幸せなことです。
[PR]
by antonin | 2012-08-28 23:38 | Trackback | Comments(0)

美しすぎる国、日本

家族で長野旅行だったり、単身部屋の転居だったり、いろいろと疲れた。が、心地よい疲れの部類だったので良かった。単身部屋はまだちょっと荒れ気味。もう少し整頓しないとな。

--

「美人すぎる××」というのを一時期よく目にした。で、いつも、この手の言葉が含み持つ悪意に苦笑してしまう。この「美人すぎる××」という表現を、もう少し噛み砕いて書くと、「××にしては美人すぎる人がいるぞ」となる。つまり、絶対評価として取り立てて美人というわけではないのだけれど、「××」と「美人」というのは感覚的に合わないのに、でもその人はそこそこ美人であって違和感がある。そういうときに使われるニュースタイトルが、「美人すぎる××」となる。

「代議士」なんかは功成り名を遂げた老人が立候補したり、セックスアピールで幸せを得られなかった女性が人間としての尊厳を取り返すために立候補したりするものであって、若くて美しい女性の出る幕ではない。そういう先入観があって、そこに売れないタレント程度の外見を持った人が現れると、それはもう「美しすぎる代議士」となってしまう。「海女」なんて伝統的で高齢化が進んだ職業などもそういう先入観に支配された領域だし、美しさよりパワーと技術が優先されるスポーツの世界も同様である。

「犬が人を噛んでもニュースにならないが、人が犬を噛むとニュースになる」という格言があって、「美しすぎる××」というのも、そういう意外性がニュースバリューになっている。これはまぁ、大衆の本質みたいなところなので仕方がない。そういうニュースネタに対して、「美人すぎるってほど美人じゃないだろ」みたいなツッコミは、ネタにマジレスというか、無粋なのだろうと思う。

同じように考えて、欧米からの旅行者が日本を指して「清潔で快適」と評価しているのを聞いて日本人が喜んでいるのを見ると、ちょっと違うんじゃないかと思う。つまり、欧米からの旅行者は、よっぽどの日本愛好者でもない限り、アジアの中の一国として日本を訪れる。日本人旅行者がヨーロッパの中でたまたまロンドンを訪れるのと同じような感覚で、アジアの中でたまたま東京を訪れる。

そういう旅行者が東京を見て「清潔で快適」と言うのは、「(アジアの都市にしては)清潔で快適」という但し書きが暗黙のうちに入っていると思ったほうがいいのではないか。私は合衆国を訪れたことはないが、イタリアの観光地は見たことがあって、そこには電線なども張られていないし、都市のすぐ外には美しい自然が広がっているし、日本の都市よりはるかに美しい。そういうヨーロッパの都市を知っている旅行者が東京を「清潔」と評したのだと喜ぶよりは、所詮東京も「アジアの一都市」に過ぎず、ニューデリーや北京と同等の扱いを受けているのだと、冷静に考えたほうがいいのだろう。

まぁ健全な自信というのは大切なもので、自虐的だったり卑屈であるよりは美しい心の持ちようではあるのだけれども、思い上がりよりは謙虚を美徳とするのが日本人の矜持だとすれば、一見ポジティブな評価に対して、あんまり舞い上がらない方が良いのではないかとも思う。

沖縄などで基地から出てきた軍人が犯罪を起こすと、米軍から日本の警察に身柄が引き渡されないと言って騒いだりするのだけれど、国際的に見ると日本の警察の取り調べというのは「拷問」の範疇に入る前近代的なものとみなされていたりして、そういう野蛮な国の警察に自国民である兵士をみすみす渡したりしないというのは、理性的な近代国家として当然の国民保護責任の遂行に過ぎない。米兵の散発的な犯罪行為が良いとは言わないが、なぜ米軍が日本の警察に捜査権を委ねられないのかという事情なんかも省みる必要がある。

「美しい国」を目指すのは美しい心掛けなのだけれど、「美しすぎる国」と呼ばれてしまったら、ちょっと怒ってみるくらいの傲慢さがあってもいいのだろうと思う。「脱亜入欧」を是とも思わないのだけれども、「(アジアにしては)優れた国家」という褒め言葉の中の、カッコ書きの部分に関する感受性みたいなものは持ち続けている必用があるのだろうと思う。
[PR]
by antonin | 2012-08-19 20:12 | Trackback | Comments(0)

それからの葉蔵

久しぶりにPCのブラウザを使ったりしていると、はてなのページに行き着いた。携帯のフルブラウザなんかだと、はてなには到達しない。

で、いくつかの話を、増田を語る増田とか、そういうメタ論も含めて読んでいたら、この時間になった。そこで思った。もし、エキブロじゃなくてはてダで安敦誌やってたら、少し人生違っていたのかもな、と。

でもまぁ、ここでも一度耳目を集めたことはあって、それで取り乱したりしてしまったこともあったので、「少し人生違っていた」というのは、必ずしもいい方向じゃなかったかもしれない。けれども、それはそれで面白いかもしれないな、なんて思った。極楽浄土よりは地獄の一丁目のほうが楽しい、みたいな理論で。(あ、この地獄一丁目論はまたいずれ書きたい。)

エキブロは基本的に写真を載せたりレシピを書いたりするところで、技術や哲学について考察するところじゃない。これはエキブロが最初から目指したところじゃなかったんだろうけど、機能追加のペースが遅くて、それでいて画像の容量制限は甘かったから、自然発生的にそうなった。

ライブドアやはてなに移動しようかと思ったことは一度じゃないんだけど、半分土に埋もれた屋敷に穴を穿って外を覗う生活ってのも、これはこれで安楽なんだよな。

このままでいいのか。これでいいのだ、という気もする。子供もいるし、守秘義務とかもあるし。
でも、スーザン・ボイルさんって今どうしてるんだろう、彼女が若かったらスターにはならなかったんだろうな、なんてことを想うことがある。

人間というのは面倒なものだが、面倒なら距離を置くことができるという意味で、まあ対処可能である。が、最大限の面倒さ加減を持った自分という人間にはこの手が使えないので、この面倒に対処する方法を一生をかけて学んでいく。そしてようやく答えが見えかけたあたりで、死ぬ。不思議なものだなぁ、と思う。
[PR]
by antonin | 2012-08-09 02:42 | Trackback | Comments(0)

人間不信

今日もBFのライブラリ拡張について、休み休み考えていた。が、続編を書くのはちょっと先送りして、雑感を。

--

ある時期から、私は人間を信用しなくなった。立派な人もいれば、しょーもない人もいる。好ましい人もいれば、憎ったらしい人もいる。けれども、よくよく見れば、どれも私と大して変わらない、一人の人間でしかない。だから、人間を信用しなくなった。他人に夢を見なくなった、ということでもいいかもしれない。根っこには、自分自身に対する完全な不信がある。

立派な人はいるが、私が見ているその人の言動というのは外を向いたものであって、内面ではきっと色々と無理をしているに違いない。だから、立派だとは思いつつも、その裏にある人間の弱さを慮って、その人の立派さを信用しない。憎らしい人はいるが、私が見ているその人の言動というのは外を向いたものであって、内面ではきっと色々と悲しみを湛えているに違いない。だから、憎らしいとは思いつつも、その裏にある人間の弱さを慮って、その人の憎らしさを信用しない。

突き詰めて考えてみると、この世の他に地獄などなくて、この世こそが地獄である。うん、まあ、そうなんだろう。でもそういう結論が出る理由の半分くらいはこの世の抱える陰惨さにあるのだけれど、残りの半分くらいは「突き詰めて考える」という行為に理由があって、要するに極論なのだろうと思う。現実というのは複雑で、その複雑さを振り払いながら一方向に突き詰めて考えると、その突き詰めて考える方向に応じて、色々な結論を導き出すことができる。

ただ、極論というのは分析的推論結果でもあって、単独では危なっかしい存在だけれども、互いに矛盾するようなものも含めて、色々な極論を併せて知っているというのは、複雑な現実に対する見方に幅を与える。色眼鏡で世の中を見るのは具合が悪いが、一度も色眼鏡をかけて世の中を見たことがないというのも、同様に具合が悪い。

この世の中について、あるいはあの世について、賢い人が色々考えて色々なことを言うのだけれども、それで統一的な合意を見る機会というのは少なくて、いつも侃々諤々の議論が続く。これはどういうことだろう、果たして世の中には疑い得ないほど確かな真実というものがあるのだろうか。少しでも疑える余地のあるものは一度全て取り払い、それでも残った疑い得ないものだけを信じてみたらいいんじゃないか。若い日のデカルトさんはそういうことを考えたという。

で、彼には実際にそれをやってみる機会があったのだが、彼の懐疑主義は破壊力が強すぎて、ありとあらゆる主張は「疑い得る」と判定されて、打ち砕かれてしまった。最後に残ったのは、疑っている主体自身は疑い得ないという、不完全性定理と同じ自己言及の壁に守られた主張だけだった。「考えている、ということはつまり、(正体はなんだかわからないけど、ともかくその主体が)ある」という、あまりにシンプルで使い道のない結論だった。

そこまで到達して、世の中には何も信じられるものなどないんだ、常識など全部嘘っぱちだ、などと投げやりにならないあたりがデカルトさんのスマートなところで、この極論から現実論へ戻ってくる過程が非常に美しい。疑い得ないものから美しい世界の真実が得られると思っていたが、懐疑主義ではほとんど結論らしい結論は得られなかった。それでも何らかの主張を受け入れなければ現実世界を生きていけない。疑い得ないものがないのだったら、どれでも自分の好きな主張を選んで、あたかもそれを信じて生きているように振る舞っていけばいいじゃないか、というところに着地していく。

デカルトさん個人について言えば、当時彼が属していたフランス王室界隈の社交界で、彼が属していると感じていたグループ、つまり知的で穏健な人々が共有していた常識を、自分の常識として受け入れよう、自身の判断で受け入れた以上は一貫性を持とう、という選択をした。具体的には、善悪の基準も、カトリック世界の説く信仰についても、穏便なる社交界の人々が持つ常識の範囲内で受け入れることにした。

別の社会階層や、別の土地の社会や、別の時代の社会で、それぞれに語られる常識が、それぞれに正しい面があって、ひとつの常識だけが完全無欠に正しいということは懐疑論に依って否定されたのだけれど、ほとんど全ての主張は等しく否定されたのだから、その中の一つを選びとることにも何ら問題がない。だったら、自分が生きている世界の常識を自分自身の選択によって受け入れよう。そういう結論だった。

極論というのはこういう具合で、結論が極端であればあるほど、現実世界に跳ね返ってくる結論というのは、拍子抜けするほど穏便なものになることがある。私の人間不信も同じようなところがあって、世間で立派だと言われている人間の立派さや、世間で悪人だと言われている人間の凶悪も、さほど信用していない。他人が見せる好意や悪意なども、同じように信用していない。良きにつけ悪しきにつけ、人間の程度などたかが知れているだろう。そしてそこにまず例外などないだろう。そういう意味合いで、人間など信用していない。

だから、「あのような人を見習って精進しよう」だとか、「あんな奴を野放しにしていいはずがない」というような熱い意見には、まあそうかもしれませんね、というような冷めた感想を持つことになる。しかし、冷めた人が覚めた人であり、熱い人より真実に近い、というようなことも思わない。熱くないと動かせないことだってある。いろいろあっていいんじゃないだろうか。
[PR]
by antonin | 2012-08-06 20:47 | Trackback | Comments(2)

イカれた脳のためのダンス教室(1)

まだ書いていなかったけれども、空白の1ヶ月余の間に、PC環境を更新した。このあたり、また別途詳しく書こうかと思っているけれども、今回は1点に絞って。PC環境の更新に伴って、いろいろと無料のプログラミング環境を構築してみた。Visual C++ 2010 Express + Windows SDK + CUDA SDK だとか、Cygwin + gcc だとか。

で、まずは hello.exe なんかを作ってみる。それから、ライフゲームとか素数計算など、いつもの遊びをやってみる。今度は Core i7 でスレッドが8本まで動かせるようになったので、スレッド周りの実験などもやってみたが、2スレッド程度では体験できなかったスケーリング実験なんかができて面白かった。32bit int に収まる奇数全てに1バイトずつ与えても2GBに収まるので、エラトステネスのふるいで素数表をゴリゴリ計算させてみると、下手にアルゴリズム的に素数を求めるよりシンプルかつ高速になったので驚いた。空間計算量恐るべし。

それから、簡単なインタプリタなども作ってみようかと思って既存言語を物色していた。最初は whitespace あたりにしようかと思っていたのだが、言語のシンプルさに比べてマシンモデルが案外複雑だったので、面倒になってやめた。一方、単なるイロモノ言語かと思っていた brainfuck が、実は非常に良くできた言語であり、名前の下品さに反して言語仕様は恐ろしくエレガントだった。マシンモデルも言語仕様以上にシンプルにできていたので、これを実装してみることにした。元々が、言語処理系を最小化するために設計された言語だとうので、なるほどそういうことか、と感じた。

brainfuck(以下、BFと書く)の素晴らしいところは、チューリング完備な言語としては、おそらく史上最低水準言語なんじゃないかということ。IA32みたいなCISCの機械語は言うに及ばず、RISC系の機械語より命令数は少ないし、素の turing machine に匹敵するほどシンプルにできている。それでいて、BF にはジャンプ命令がない。あるのは while loop を表す "[" と "]" だけだ。これだけ低水準言語のくせに、イッパシの構造化言語だなんて洒落ている。

Brainfuck - Wikipedia

上記の Wikipedia の説明では、BF は「難解プログラミング言語」と説明されているが、こんなに簡単なプログラミング言語は無いのではないか、という気もする。確かに、BF で実用的なプログラムを組むのは難しそうだし、できあがったプログラムコードを読んでも、それが何を意味するかを読み解くのは難しそうだ。だけれども、私が最初に触れた、あの 8bit 時代の BASIC も同じじゃなかったか。

BASIC の命令を覚えただけでは遊べるレベルのゲームが作れるとは到底思えなかったし、素人が組んだ BASIC のプログラムを読んでその意図を読み解こうとしても、たいていは無理な話だった。だからといって BASIC を「難解プログラミング言語」とは呼ばないだろう。確かに実用的な作業をするまでの距離は遠いけれども、BFほど簡単に、その言語仕様の全貌を把握できる言語もないだろう。

Cは「高級言語の中では一番低級な言語」という特異な地位を占めているが、実はCの言語仕様範囲だけで実用的なプログラムを組むのは難しい。とは言っても、世の中にはCで書かれた実用的なプログラムがあふれている。それはなぜかというと、Cにはリンクして利用可能なライブラリが満ち溢れているからだ。コンパイラベンダが提供する標準ライブラリはもちろん、他にも様々なハードウェアのドライバがCで利用可能な関数の形として提供されている。逆に言えば、標準ライブラリ関数も含めた全てのライブラリを剥ぎ取られた "C language core" だけでプログラミングしろと言われたら、それは結構「難解」な作業なのではないかと思う。

同じ事は BF についても言えて、BF には定められた標準ライブラリも無いし、当たり前の話だけれども、OSベンダやハードウェアベンダが提供する、BF 向けライブラリなどというものも無い。とは言っても、BFで書かれた "Hello world" プログラムは存在する。BFには出力命令があるので、これはできて当たり前と思うかもしれない。しかし、BFにはマシンに文字を伝えるための文法がない。BFを解釈する処理系の方に「データを出力するとASCIIとして解釈する」という機能が盛り込まれているので、"Hello, World!" のASCIIコードに相当する数値を順次出力すれば、BFであっても文字列出力が可能になる、ということに過ぎない。

自作のBFインタプリタでは、BFの出力命令をCのputcharで、入力命令をgetcharで実装した。だから、出力命令はint 型の引数を取るputcharにBFのint型データを渡しているだけで、8bit表現可能な文字以外は適当に切り詰められる。そして、入力命令も8bit文字しか扱えない代わりに、EOFが-1という数値として特別扱いできて、BFプログラムは入力データの終端を検出できるようになる。この前提を自明のものとすると、",+[-.,+]" という短いBFプログラムでFIFOを組むことができる。これは入力用関数としてgetcharを使う処理系に依存したプログラムなのだけれど、たったこれだけの機能でかなり便利なプログラムを簡単に組めるようになる。

BFは1次元に並んだ整数列を増減させる機能と、その入出力機能しか持たない。その入出力を数値として解釈するか、あるいは文字として解釈するかは処理系依存であって、BFの言語仕様の外側の話である。実用的な機能が関連付けられているのはデータであって、文法上の命令ではない。だとすれば、BFが扱うデータに対して、もっとずっとリッチな意味付けをしたならば、「実用言語としてのBF」なんてものも作れるのではないか。

試しに、BFに欠けている基本機能である、代入演算、算術演算、論理演算、ファイル入出力などを、データを解釈するだけのライブラリとして実装してみたら何が起こるだろう、ということを今週末はずっと考えていた。

まず、BFの言語拡張になるようなことは一切したくない。史上最低水準言語としてのBFの美しさは守りたい。あくまでBFの範囲内で、データに対して機能を紐付けるという方法でのみライブラリ化をしたいと思った。それから、BFのプログラミング能力を無力化するような、ライブラリ自身が極端にプログラマブルになってしまうような拡張も避けたかった。このための縛りとして、ライブラリはBFの命令ポインタ及びデータポインタを一切動かさない(参照は可能である)ことと、ライブラリはBF配列上のデータ以外の内部状態をなるべく持たないこと、の2点を指針とすることにした。

まず最初に、ライブラリ内の機能呼び出し規約を定義する必要がある。というより、そもそもどうやってライブラリコールするのか、という問題がある。これについては、メモリアドレスの一部を機能レジスタとして割り付け、特定のメモリアドレスにデータ書き込みするのを検出して関数呼び出しとするか、BFの持つ出力機能を拡張して、特定のデータを出力することで特定の機能を呼び出す、という方式しかないと考えている。ただし、このライブラリはBFの機能を「拡張」するものであって、BF本来の機能に制約を課す部分は最小化したかった。

なので、ライブラリが認識する特別なデータを出力した場合以外では、この拡張処理系は素朴なBF処理系として振る舞うことを期待して設計したい。となると、どこか固定のアドレスに特殊な意味付けをするのは避けたい。"Hello, World!" の系を考えると、出力値が unsigned char の範囲に収まる場合は、それを素直にputcharするようにしたい。欲を言えば、出力にはintデータをUnicode文字として扱えるような機能も用意したい。となると、Unicodeにも現れない「負の数値」は素朴なBFの出力値には現れないデータとみなして、これを特別扱いとして関数の識別符号に利用してみることにした。

つまり、負の値を出力すればライブラリを利用する拡張モードになるし、それをしなければ素朴なBFの処理系となるという、素朴なBF処理系の上位互換系となるようにした。この拡張処理系でも、 "Hello, World!" はそのまま動くということである。

ライブラリの各「機能(function)」はCの「関数(function)」に近いスタイルにしたかったので、関数によって定められた複数個の引数と、1個以下の戻り値(voidを含むただ1個の戻り値)をインターフェイス基盤とした。となると、ライブラリはスタックマシンとするのが妥当なのではないか、という結論になった。

最初のうちは、データポインタを関数インデックスと見て、そこから正方向に引数が並び、データポインタ-1の位置に戻り値が書かれる、というようなインターフェイスを検討していたのだけれど、これだと関数コールのネストによって複雑な処理を記述するときに、データ移動が煩雑になってしまうという問題があった。それに、関数ポインタというアルゴリズムに属するデータと、引数や戻り値という状態に関するデータを、同じ領域に混在させなくては関数コールできないことになってしまって、ハーバード的な命令とデータの分離ができなくなるので断念した。

ライブラリにスタックを持たせるとなると、この領域は基本的にライブラリ専用になる。早くも基本指針と矛盾してくるので困ったが、ここは関数コールに負の値を利用したことの応用で、ライブラリスタックは、BFのリニアアドレス上でマイナスアドレスを持つ領域に負の方向に向かって成長する、というように決めた。こうすると、負のアドレスを持つBFのデータというのは標準的ではないけれども、負のアドレスというものを別とすれば、ライブラリ用データスタックがBFのデータモデルと自然に共存できる。

ちなみに、スタックに引数を積んでいく順番を右から始めるというcdeclなスタイルにしてやれば、printfみたいな可変個引数の関数も呼び出せる。printf関数を持ったBFというのは、ちょっと魅力的ではないだろうか。

--

遅くなったので、続編はまた後日。
[PR]
by antonin | 2012-08-06 01:31 | Trackback | Comments(0)


お気に入りブログ
外部リンク
外部リンク
ライフログ
ブログパーツ
Notesを使いこなす
ブログジャンル