またもや
やじうまwatchからの借用ネタ。
■一文を短くって言うけどさ1(ブログ文章術)
誰が書いたんだか分からない小汚いソースを延々読み続けるという拷問の最中、
息抜きにネットに出たらこんな文章に出会ってしまった。
お皿ひとつひとつに、それぞれ、ハムや卵や、パセリや、キャベツ、ほうれんそう、お台所に残って在るもの一切合切、いろとりどりに、美しく配合させて、手際よく並べて出すのであって、手数は要らず、経済だし、ちっとも、おいしくはないけれども、でも食卓は、ずいぶん賑やかに華麗になって、何だか、たいへん贅沢な御馳走のように見えるのだ。
|
流石は太宰先生、読みにくいが味のある文を綴るなぁ。……とは思わなかった。
腹の立つほど汚いソースを見せつけられている最中に、腹の立つほど汚い文章を
見せられた気持ちというのは分かって頂けるだろうか?(笑)
とにかく意味も無く腹が立ったので、徹底的に整形してやることにした。
まず、文章の構造を一度整理してみる。
if (お皿1==ハム && お皿2==卵 && お皿3==パセリ && ……)
{
if (皿の配置==(いろとりどり&美しく配合&手際よく並べて出す))
{
手間=要らず。
経済=true
味=ちっともおいしくない。
食卓=ずいぶん賑やか。
食卓+=華麗。
食卓+=大変贅沢な御馳走のように見える。
}
}
|
ソース読んでる最中だったので、何故かCライク。(笑)
これをどんどん整理してしまおう。
まず、この処理の目的が分からないので、「御馳走に見えるかどうか」を判断する処理と定義する。お皿はめんどくさいから集合体「各小皿」にまとめる。盛り付ける料理も集合体「台所の残り物」でいいや。
皿の配置に関する条件が冗長なので、似ている「いろとりどり」と「美しく配合」を統合。「手際よく並べて出す」は皿の配置の視覚的印象とは違うと思うので削除。味が良くないのは残り物だからであって、皿の配置と関係ないので2つ目のifから出してしまう。 手間が要らない事も、結局は料理の質の問題なので(皿の配置は手間がかかってる)同様にifから出す。
食卓の状態についても見直す。「御馳走のように見える」は結果なので、これと「賑やか」「華麗」は分けて考える。賑やかと華麗は見た目の印象と考え、代入先を「食卓」からに変える。そもそも、小皿の上の食材と、小皿の配置とは関連性が無いのだから、それぞれのif文を独立させてやる。
最後に、御馳走か否かを各要素から総合的に判断する関数「CheckDinnerLevel」を付けてみる。型は"御馳走bool"。(笑)
if (各小皿==台所の残り物)
{
手間=要らず。
味=ちっともおいしくない。
経済=true
}
if (皿の配置==いろとりどりに美しく)
{
皿の配置+=華麗
皿の配置+=ずいぶん賑やか。
}
return ( CheckDinnerLevel(手間、味、経済、皿の配置) ) ;
|
では、これを文章にしてみる。
台所の残り物を、小皿1つ1つに盛っていく。
これを食卓の上に、色とりどりに、美しく賑やかに並べてみる。
手間もお金もかかっていないし、実際大しておいしくもないのだが、
何故か贅沢な御馳走に見えてしまうのだ。
|
いいんでない?(笑)
とはいえ、これでも気が済まないので、さらに整理してみる。
struct { 手間, 味, 費用 } 料理 ;
return ( CheckDinnerLevel( 料理, 見た目 ) );
|
肝は「御馳走」判定関数であって、その前のif文は引数作っているだけ。
だったら、if文周りは分離しちゃって、別関数(Call元?)に追いやってしまおう。(笑)
この処理だけを文章にするとこれだけ。
御馳走に見えるか否かは、味や手間、費用だけでなく、見た目も影響する。
|
これに引数として「台所の残り物」を突っ込んで、戻り値が御馳走になる方法を考えるのが元の文章のおおよその趣旨だから、その引数についても言及してやると、こんな文章になるだろうか。
御馳走に見えるか否かは、味や手間、費用だけでなく、見た目も影響する。台所の残り物だって、盛り付け次第で御馳走に見えてしまうのだ。
|
で、上位から見た場合は、関数の内部処理の説明なんかどうでもいいので、これを削除してしまう。
台所の残り物だって、盛り付け次第で御馳走に見えてしまうのだ。
|
ここまで減らせた。んー、なんだかすっきり。(笑)
元の文章のニュアンス殆ど残っていないけど……まぁいいか。(笑)
※一応は真面目に考えているつもりですけど、基本的にはネタです。^^;