文章を書くことはプログラミングに似ている。

技術広報のしゅーぞー(shuzon__)です。

今日は「文章を書くことはプログラミングに似ている」という話をします。

参考書籍はこちら。論理が伝わる世界標準の「書く技術」

@soudai1025からのリクエストで社内ブログを一部編纂し公開しています。


文章を書くことはプログラミングに似ている。

文章を書くことはプログラミングに似ている。 なぜならば、抽象化すると、一連のトピックに対する意味のあつまりを区切り、扱う行為だからだ。 意味ごとに構造化する行為と思えば非常に似ている。

パラグラフ・ライティングは関数に似ている

ここでパラグラフ・ライティング を紹介しよう。

パラグラフの構造

パラグラフ・ライティングは関数に似ている。 パラグラフ・ライティングは段落の先頭に「その段落が持つトピックの結論」を書く。 その後、前述の事実を用いた補足とロジックが続きトピックを補足する。 段落の最後に、議論の結論を置く。

詳しくはこちらを参照して欲しい。

techblog.cartaholdings.co.jp

この構造が非常に「関数」に似ている。

パラグラフ・ライティングを覚えると文章がコードのように扱える

パラグラフ・ライティングと関数の構造がにている

実コードにしてみるとこのような書き方ができるだろう。日本語でとやかく言われるよりもよっぽど分かりやすい。

// 前述の議論
const depend  = ""; 


// トピックの要約, 前述の議論
function summary(depend: TypeA): TypeB {  
     // 補足とロジック
     const conclusion = logic(depend)
     // 結論 
     return conclusion 
}

このように構造を理解すると文章は非常にモジュラブルなものだと考えることが出来る。

章・節・項は名前空間とスコープのためにある

章節項の階層的な構造とプログラミングパラダイムにおける役割

パラグラフ・ライティングを覚えると、章・節・項が構造化のためのスコープだと捉えることが出来る。 html domならばh1,h2,h3にあたるそれらは、 「話題の有効範囲」を絞り込むための名前空間 である。

  • 章: namespace
  • 節: class
  • 項: aggregate function
  • 文: function

のようにマッピングして考えていけば、それらが「文章が持つ役割と振る舞いを区分けしたもの」であると自然と理解できる。

つまり、 文章を書くことは、意味論的なドメイン設計にほかならない。

(実際に、パラグラフ・ライティングをしていると項と段落の先頭行が極めて近い表現になることに気づくだろう。)

自然言語も同じように意味論の構造として扱えばよいのだ

プログラミングと文章がもつ目的は異なる。しかし、構造が似ている。 プログラミングの目的は言語の意味が「振る舞いをまとう」ことで挙動を実装する。文章の目的は、言語の意味が他者の認知を動かすことにある。しかし、両者はその表現方法において意味単位に依る構造化を行うことで意味論的に扱うことが出来る。 つまり目的は異なるが「意味の塊で分ける」ことには変わりがない。

我々は意味論を扱うプロなのだから、自然言語も同じように意味論の構造として扱えばよいのだ。

以上