『吾輩は猫である』をプログラム構造にしてみる〜後編〜｜文章題で身に付くプログラミング思考入門️（11/25）

## 前回はこちら

https://qiita.com/yuki_thewaggle/items/70ee14ef1f2fb18f5399

前回の続きです。

それでは、「別段恐ろしいとも思わなかった」の主語を、感覚ではなく、文章の分解から導いていきます。

> 吾輩はここで始めて人間というものを見た。
しかもあとで聞くとそれは書生という人間中で一番どうだかこうだか分からない種族であったそうだ。
この書生というのは時々我々を捕えて煮て食うという話である。
しかしその当時は何という考もなかったから別段恐しいとも思わなかった。

この辺りを、主語と述語だけに絞って確認してみましょう。

> 吾輩は ~~ここで始めて人間というものを~~ 見た。
~~しかもあとで~~ 聞く ~~と書生という人間中で一番どうだかこうだか分からない種族であったそうだ。~~
~~この~~ 書生 ~~というのは時々我々を捕えて煮て~~ 食う ~~という話である。~~
~~しかしその当時は何という考もなかったから別段恐しいとも~~ 思わなかった。

図にしてみましょう。
過去形や否定形はややこしいので、全て現在形にしてシンプルにまとめます。

<img width="400" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/b6ae650c-44c2-fa02-0eb8-0cf0edb1ac3b.png">

主語のない文が2つ出現していましたね。
こんな時に頼りになるのが、接続詞です。
今度は、接続詞を拾い出してみましょう。

> 吾輩は ~~ここで始めて人間というものを~~ 見た。
しかも ~~あとで~~ 聞く ~~と書生という人間中で一番どうだかこうだか分からない種族であったそうだ。~~

- 吾輩は見た、しかも、聞く。

つまり、「聞く」の主語も「吾輩」だとわかりました。

<img width="400" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/5ccdd2e8-e3ea-6e69-30b0-f0728d371160.png">

「見る」のも「聞く」のも対象が必要ですから、目的語を拾い出してみましょう。

> 吾輩は ~~ここで始めて~~ 人間 ~~というものを~~ 見た。
> しかも ~~あとで~~ 聞く ~~と~~ 書生という人間中で一番どうだかこうだか分からない種族であったそうだ。

- 吾輩は見た、人間を。
- 吾輩は聞く、書生という...人間...であったそうだ。

<img width="600" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/389e38e9-c583-c177-88b4-3a264cea9f3b.png">

次の文に進みましょうか。

> ~~この~~ 書生 ~~というのは時々我々を捕えて煮て~~ 食う ~~という話である。~~

「食う」にも目的語が必要ですから、拾い出しましょう。

> ~~この~~ 書生 ~~というのは時々~~ 我々を ~~捕えて煮て~~ 食う ~~という話である。~~

- 「我々」と言っているのは「吾輩」
- 「吾輩」は「猫」

ですから、

- 書生が食うのは猫

<img width="400" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/e57cda34-6251-7947-a8f7-31281b1e7275.png">

ですね。
そして、この文は

> ...話である

と結ばれているので、話を聞いている主語がいるはずです。
文中に「我々」とあるので、話を聞いている主語は「我」ですね。つまり、「吾輩」です。
あるいは、ここまでに「吾輩」以外の主語が出てきていないので、省略されている主語も当然「吾輩」である、という考え方もできますね。

<img width="600" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/0027b574-40a8-86f2-9511-f05e04c5205e.png">

そう、ここまで全ての主語は「吾輩」だったわけです。
そうすると次の文で省略されている主語が何かと考えると

> しかし ~~その当時は何という考もなかったから別段恐しいとも~~ 思わなかった。

やはり「吾輩」である、と考えるのが自然です。
そして「思う」にも目的語が必要ですから、抜き出しておきましょう。

> しかし ~~その当時は何という考もなかったから別段~~ 恐しい ~~とも~~ 思わなかった。

<img width="600" alt="主語と述語の図式" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147743/6fd787c4-8ae1-575f-fbb5-d6c02524ac1b.png">

さあ、吾輩猫の行動が洗い出せましたね。
整理しましょうか。

```
【猫：データ】
名前：吾輩猫
一人称：吾輩
生まれ：見当がつかない場所
鳴き声：ニャーニャー

【猫：行動】
- 泣く
- 記憶する（泣いていた事）
- 見る（人間を）
- 聞く（書生という人間であった／書生は猫を食う）
- 思う（恐ろしいと）


【書生：データ】
名前：初エンカ書生

【書生：行動】
- 捕える（猫を）
- 煮る（猫を）
- 食う（猫を）
```

プログラミングのコード風に書いてみましょうか。
ひとまず、行動だけ書いてみましょう。振る舞いはわかりやすいですから。

`主語`.`行動`と書いてみます。

> ~~吾輩は猫である。~~　※データなので飛ばす
> ~~名前はまだ無い。~~　※データなので飛ばす
> ~~どこで生れたかとんと見当がつかぬ。~~　※データなので飛ばす
> 何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
> 吾輩はここで始めて人間というものを見た。
> しかもあとで聞くとそれは書生という人間中で一番どうだかこうだか分からない種族であったそうだ。
> この書生というのは時々我々を捕えて煮て食うという話である。
> しかしその当時は何という考もなかったから別段恐しいとも思わなかった。

```
吾輩猫.記憶する（吾輩猫.泣く）
吾輩猫.見る（人間を）
吾輩猫.聞く（書生という人間であった）
吾輩猫.聞く（書生.捕える（猫を））
吾輩猫.聞く（書生.煮る（猫を））
吾輩猫.聞く（書生.食う（猫を））
吾輩猫.思う（恐ろしいと）
```

吾輩猫、大活躍ですね。
なお、シレッと入れ子にしてみました。

例えば
> 吾輩猫.記憶している（吾輩猫.泣く）

ここなどですね。

仮に`吾輩猫.泣く`ではなく`泣いていた事`と書いたとしたら、

```
吾輩猫.記憶する（泣いていた事）
```

「誰が泣いていたの？」とコンピュータが混乱します。
そう言われたら、この一文だけ見たときは、あやふやで気持ち悪いですね。
明確にしたいですよね？そうですよね。

「誰が」「何を」「どう」するのかはっきりさせてあげないと、コンピュータは動けません。

実は人間関係でもそうですよね。一緒です。
コンピュータは忖度してくれないので、ばんばんエラー出します。
#### そうやってコンピュータと対話を続けていると、頭の中が整理されてきます。

構造化思考とか論理的思考とか、クリティカルシンキング、ラテラルシンキング、現実思考、抽象化、具体化、創造力、倫理力。
#### 色々な思考力が、これまで以上に必要とされる時代になりました。

#### 要するに、どれだけ謙虚でいられるか？が必要とされています。
謙虚とは学び続ける姿勢です。

## まとめ
- コンピュータと対話を続けていると、頭の中が整理されてきます。
- 色々な思考力が、これまで以上に必要とされる時代になりました。
- 要するに、どれだけ謙虚でいられるか？が必要とされています。

## 最後に
ここまで読んでくださってありがとうございます！
新しい気づきがあれば「いいね」をください。続ける励みになります。
普段何気なくやっていることを分解するのは簡単ではないですが、分解するからこそ、人に伝えることができ、人から人へ能力が受け継がれていくのだと思います。
と、自分を励ましつつ続けていきます！よかったらコメントください。