表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
2/11

魔法==プログラム

第1話の呪文の書式を修正しました(すみません……)。

プログラムの説明は少し複雑かもですが、退屈にならないよう頑張ります。

 ちょっと落ち着いて、呪文をよく見てみよう。


--------------------------


instant light(red_stone rs){

  reverse_element(rs, LIGHT)

}


--------------------------


 ……見ればみるほど、俺が仕事で使っているCというプログラミング言語によく似ている。細部は違うみたいだが。

「この呪文、名前とかある?」

「ええと、私達は光の呪文と呼んでますけど」

「なるほどね」


 ここでプログラムについて簡単に説明しておこう。


 プログラムというのは、コンピューターを動かすための命令の集まりのことだ。

 コンピューターは、なにかしらの入力を受けて、それを変換して出力する機械だ。

 例えば、キーボードの「A」のキーを押す。これが入力。

 コンピューターはその入力を検知して、画面に「A」の文字を表示する。これが出力。 これを沢山組み合わせれば、ゲームを作れたり、動画配信サービスを作れたりする。

 まあ、ゲームを作るにはこの入力と出力を1万個くらい組み合わせることになる。ムチャクチャ大変だ。

 でも、基本は同じ。入力と出力だ。


 「光の呪文」に戻ろう。


--------------------------


instant light(red_stone rs){

  reverse_element(rs, LIGHT)

}


--------------------------


 これはいわゆる関数という奴だ。一個の入力と出力をひとまとまりにしておく物。

 数学の授業で"y = f(x)"とかやったことあるだろ? あれと同じ。

 xが入力で、yが出力。入力を出力に変換するのがf、関数(function)だ。

 関数は、大抵こんな感じになっている。



--------------------------


[関数の名前]([入力]){

  [変換する内容]

}


--------------------------


 光の呪文に当てはめてみるとこんな感じだ。


[関数の名前]instant light

[入力]red_stone rs

[変換する内容]reverse_element(rs, LIGHT)


 まず、[関数の名前]。

 [関数の名前]は、文字通り関数につける名前だ。

 "instantインスタント lightライト"は「光の即席魔術」という意味だろう。

 

 次に、[入力]。

 の"red_stone rs"には少し説明が必要だ。

 これは"red_stone型のrs"という意味だ。

 かたというのは、「入力する物の種類」を決めるためのルールだ。英語ではtype。

 関数は、自分の中で処理できる入力の種類がある程度決まっている。

 キーボードの入力を受け付ける関数に、音声波形を入力されても処理できないし、最悪コンピューターが故障するかもしれない。

 そこで、「この関数は、キーボードからの入力だけを受け付けますよ」というルールを、型で指定するのだ。

 "red_stone rs"をもう少しくだけた言い方に直すと「red_stone型の入力を受け付けて、その入力にrsという名前を付けますよ」という意味になる。


 さっきナツミは「赤石」という石を羊皮紙に投げつけていた。

 赤石=red_stoneなのだろう。この呪文は、赤石を入力にして、光を発するんだ。


 最後、[変換する内容]。

 ここに書いてあることは、正直俺にもよくわからない。資料が足りない。

 でも構わない。プログラムを書いている時はよくあることだ。

 始めは、分からなくても動けばいい。理屈はあとからついてくればいいんだ。

 ひとまず動かした方が、楽しいしな。

 とはいえ、想像することはできる。

 "reverse_element(rs, LIGHT)"これは、「reverse_elementという関数に、rsとLIGHTを入力として渡します」という意味だ。

 どこかにある別の関数を呼びだしているわけだ。reverse_element……「元素に戻す」かな? rsというのは入力の所にあったred_stoneだ。LIGHTは光、まんまだな。


「ナツミ。赤石ってのはなにでできてるんだ?」

「なにって言われても……鉱石の一種ですよ。元素構成で言えば、光と、土と……」

「元素? なにそれ?」

「万物を構成する要素です」

「あー、なるほどね。つまりこの光の呪文は、赤石の中から光の元素だけを取り出しているんだな」

「え、あ、はい! そうです!」

 ナツミがキラキラした尊敬の眼差しを俺に向けてくる。こそばゆいが、気持ちがいい。

「よし、だいたい分かった。実験してみよう」

「実験。なにをするんです?」

 首をかしげるナツミに、俺は言った。

「呪文を書き換えてみるんだよ」

 プログラムの解説は今は簡略化しています。


最後まで読んで頂きありがとうございます。

評価・ブクマをして頂けると励みになります!

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
このランキングタグは表示できません。
ランキングタグに使用できない文字列が含まれるため、非表示にしています。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ