作家・デザイナー。以前の名は「わたしの名はフレイ」でした。

データ構造

データ構造

プログラミングにおいて、
データ構造はさまざまな場面で使われる。
たとえば、目的の単語を検索するために、
二分木構造を使い、
アルファベット順で先のものは左の子要素に、
後のものは右の子要素にと、
常に整理されたデータ構造を保つことで、
最短で探索を行うアルゴリズムは、
K&Rなどで紹介されていることもあり、
よく知られている。
反対に、頻繁にデータを書き換える場合には、
データの矛盾が発生しないことが大切になる。
複数のスレッドから操作する場合は、
排他制御とロックが必要となり、
デッドロックにならないように、
処理の順番を同じにする。
また、データの値をある種のフラグや状態と見なし、
データが変わるとプログラムの制御が変わるようにする、
制御モデルも考えられる。
より応用的な例では、
スタックと再帰が考えられる。
たとえば、数学の算術式におけるカッコや、
HTMLやXMLのタグは、
最後に開いたタグが最初に閉じるタグとなるため、
再帰とスタックで実現できる。
また、設定ファイルやコンパイラなどは、
文字列のトークンを解析する字句解析の後に、
構文ルールからパースツリーを作る構文解析を行う。
また、より発展的な内容であれば、
スクレイピングによって取得したWebページのソースを、
自動で処理し、GUIでたとえばIEコンポーネントで表示するのも、
一般的なデータ処理である。
ほかにも、配列やリスト、ツリー、ヒープ、グラフなど、
さまざまなデータ構造があり、
データベースを使ったり、
PythonR言語のデータフレームを使ったり、
マッピング関数などでコールバック関数となる関数オブジェクトを、
データにひとつひとつ適用したりすることもある。
場合によっては、オブジェクト指向カプセル化や、
イテレータを使うことで外部から分からないように隠蔽する。
メッセージキューなどは、
リアルタイム性や連携が必要な時に、
システムとシステムを繋げ合うグルーの役目をする。
このように、プログラミングにおいてデータ構造は、
とても重要である。

ものを支配しようとすれば現実での試行錯誤はできる

僕ができないのは、現実での試行錯誤であり、
できないのがなぜかといえば、「支配しようとしないから」である。
支配をしようとしないから、最初から正しいことを言って、
何も自分で行動しようとしない。
するべきは支配であり、
その「小さな空間での支配」が、美術やピアノを成功させる鍵である。

わたしは神を信じている

わたしは、神を信じている。
この神は唯一の神であり、
ほかに神は存在しない。
実際、僕はギリシャや北欧の神々を作ることを
そろそろやめにする。
それらすべては単なる「僕の分身」であり、
それぞれが違うようでまったくどれも同じである。
多神教はつまらない。
そもそも、僕の作る神話は、まったく賢くない。
自分の、不十分で不完全な人生らしきものを、
三文小説にしているだけである。
天に居る本当の神は、こんなに馬鹿じゃない。

僕のことをイスラム教徒と言うならば言えばいい

僕のことを、イスラム教徒と言うならば、
言えばいい。
それなら、わたしはイスラム教徒だ。
わたしは、自分から自分のことをイスラム教徒とは言わないが、
イスラム教徒であると言われるなら、
それをわたしの誇りとしよう。
唯一神とされているアッラーとは、
わたしに対する呼び名だからである。

僕は本当の神を知っている

しかしながら、僕は神ではない。
僕は単なる詩人である。
なぜなら、僕は本当の神がなんであるかを唯一知っている。
神は黒人の右翼の心理学者であり、
この世界を支配している。
そして、僕の恋人はイスラエルの最高指導者のラビである。
ほかに、神のような存在は居ない。
僕を神だというのであれば、
僕だけではなく、彼らも神だということにしなければならない。
そうすると、僕は唯一神ではない。
よって、僕は神ではなく、単なる詩人なのである。
しかしながら、ここに「三位一体」の考え方を持ち出せば、
この問題は解決する。
すなわち、黒人が父なる神で、ユダヤ人が子なる神で、
僕は精霊の神であるということになる。
よって僕は神ではなく、大天使ガブリエルである。
同様に、僕の文章はミカエル、
僕の人生はラファエルということになる。