歌川国芳の雰囲気を文章で

以前、そう2018/6/6の投稿で、画家さんやデザイナーさんを紹介していましたが、今日は、「歌川国芳」の作品の中の幾つかのような、ギミックな絵、みたいな事を文章でやれるんだろうか?。と言う趣旨です。そして、もう一つこの、文章遊びをやるのにはプログラマーが遭遇するシーンを一般の方が体験するのに使えるのではないか?と思ったからです。

一つ目は、読み進んで行って、文末でどんでん返しになるタイプ。

夕立がくるのか、午後3時すぎ、多くの学生が小雨の中を傘をさしていている、ちょうど到着した電車から出てきた学生達だ、急にどんよりとした重たい雲が遥か向こうまで、覆って、激しい稲妻が幾度も走ったが、あまりに遠方だからか雷鳴は聞こえない。もうすぐ本降りになるかもしれないと思い、私は用事を急ぐ。そして、用事を済ませ、かれこれ一時間半後ほど過ぎた頃に、また駅に差し掛かると、本降りどころか、とんでもない豪雨になっていた。傘が役に立っていないのか、ずぶ濡れで歩いている。とは言っても先ほどの大勢ではなく、数名である。薄い白い衣類はずぶ濡れで、肌色が透けている。良く日に焼けた手には、ビニールがさを持ち、ささずに歩いている。夕方の散歩に出てきたご老人たちなのか、ステテコでずぶ濡れになりながら、時折、空を見上げて、顔にかかる雨を手で拭っている。

一連の条件について、NOTで括って有るような場合に遭遇する、頭の中に構築してきたイメージの再構成をやるような場合です。

二つ目は、単語の意味の入れ替えです。前半と後半に分かれていて、後半は単語の意味を入れ替えて記述するタイプ。

8月初旬のある日、私はスーパーマーケットに買い物に出かけた。スパゲティーと、トマトピューレと、挽き肉、そしてスイカと、ぶどう、ペットボトルのコーヒーと、グラニュー糖、塩と、マヨネーズ、レタス、朝食用のあさげ、かき氷を買い帰宅した。

後半の文章の原文として次の文章を用意します。

帰宅後、戸棚に、マヨネーズ、トマトピューレ、グラニュー糖、塩、朝食用のあさげ、スパゲティーを片付け挽き肉と、かき氷を冷凍室に、スイカとぶどうとレタスを冷蔵庫の野菜の場所にしまい、ペットボトルのコーヒーを冷蔵庫のボトル居れに入れた。

そして、上記の文章を加工するのですが、文章加工を行うにあたり、ストリームエディター sedをつかいます。原文をgenbun.txtと言うファイルに書いておき、下記コマンドで変換します。

cat genbun.txt |\
sed -e ‘s/スパゲティー/cwwd001/g’ -e ‘s/マヨネーズ/cwwd002/g’ -e ‘s/挽き肉/cwwd003/g’ -e ‘s/トマトピューレ/cwwd004/g’ -e ‘s/スイカ/cwwd005/g’ -e ‘s/ぶどう/cwwd006/g’ -e ‘s/かき氷/cwwd007/’ -e ‘s/ペットボトルのコーヒー/cwwd008/g’ -e ‘s/グラニュー糖/cwwd009/g’ -e ‘s/塩/cwwd010/g’ -e ‘s/レタス/cwwd011/g’ -e ‘s/*朝食用のあさげ/cwwd012/g’ -e ‘s/cwwd001/マヨネーズ/g’ -e ‘s/cwwd002/挽き肉/g’ -e ‘s/cwwd003/スパゲティー/g’ -e ‘s/cwwd004/塩/g’ -e ‘s/cwwd005/朝食用のあさげ/g’ -e ‘s/cwwd006/グラニュー糖/g’ -e ‘s/cwwd007/ペットボトルのコーヒー/’ -e ‘s/cwwd008/かき氷/g’ -e ‘s/cwwd009/ぶどう/g’ -e ‘s/cwwd010/レタス/g’ -e ‘s/cwwd011/トマトピューレ/g’ -e ‘s/cwwd012/スイカ/g’



そして変換された文章が次の文章です。

帰宅後、戸棚に、挽き肉、塩、ぶどう、レタス、朝食用のあさげ、マヨネーズを片付けスパゲティーと、ペットボトルのコーヒーを冷凍室に、朝食用のあさげとグラニュー糖とトマトピューレを冷蔵庫の野菜の場所にしまい、かき氷を冷蔵庫のボトル居れに入れた。


さて、何も知らずに変換後の文章を読めば、戸棚に挽き肉を入れてはダメだと思いますが、変換規則に従って変換された文章だと、しって居れば、「挽き肉」は「マヨネーズ」であり、未開封のマヨネーズだから、戸棚に片付けることで問題ない事は理解できると思います。

プログラミングでは、言葉や関数や処理を定義したり、変更したりすることが良く有ります。一人でやっているうちは、自分が変更したのだから、忘れたり勘違いしたりしなければ問題は無いのですが、大勢でプログラムをかく場合、役割分担や作成する機能の分担を行いますので、各々が日々新たに定義を行い、、また定義済みの何かを変更する作業を行います。チーム内での意思疎通がとても重要になってきます。新たな定義が出来たよとか、あの定義は変更されたよと言う事を、常に全員が把握していないと、ミスやバグにつながります。そして、その修復にはまた、膨大な時間や人件費や検証設備利用料がかぶってきます。

最新の情報をチーム内できちんと共有しましょうね。と言う事も大切ですが、個人としては、もっと大変な事が起きます。関数名や変数名、文字列に定義された意味が変わると言う事が大変なのです。その関数名を見たときにイメージとして思い描く概念が変更されるのですから、変数名を見たときに思い描く意味が変わるので、大変です。

設計書が変更され最新版に入れ替えられたとして、読まないと最新の変更を理解することは出来ません.

設計書が手元に無いなら、何を元に何を知り、何を理解すれば良いのでしょう。

最後に、蛇足ですが、法律の文章って、「あれで示された、ことについて、あの場合の考慮を除いては、それに従うものとする。」的な書き方なんですよね。「○法二条二項に示されたことについて、△法32条3項の場合の考慮を除いては、○法51条10項に従うものとする。」なので、条文を読み進めると言う事はあっちこっちをその都度読みこなしながら、頭の中かノートに整理しながら読み進めないと、本質的な部分がみえないとか、具体的な部分が理解できないとか、そういうことになりますよね。

こう言う状況って、いわゆるプログラムを読みこなす時や記述する時と同じですよね。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です