8. 段落

この章では、文章中の段落を互いに強く結びついたものにするためのガイドラインを示します。まず最初に格言を一つ:

トピックの様々な部分の間の依存関係を解きほぐし、一つの論理的な流れに沿ってその部分を提示して読者にあなたの意見を理解させること、執筆とはこれに尽きる。

優れた書き出しを書く

書き出しの一文はどんな段落においても一番重要な文です。時間のない読者は最初の文だけを読んで他の文を飛ばすことがあるので、執筆の労力は書き出しの文に集中させるべきです。

良い書き出しはその段落の中心的な考えを述べます。例えば、次の段落は効果的な書き出しを持ちます:

A loop runs the same block of code multiple times. For example, suppose you wrote a block of code that detected whether an input line ended with a period. To evaluate a million input lines, create a loop that runs a million times.

(ループは同じコードブロックを複数回実行する。例えば、入力行がピリオドで終わったかを検出するコードブロックがあったとしよう。百万行の入力行を評価するには、そのブロックを百万回実行するループを作ればよい。)

上の例文では書き出しの文がループの入門という段落のテーマを提示します。これに対して、次の書き出しは読者を誤った方向に導くでしょう:

A block of code is any set of contiguous code within the same function. For example, suppose you wrote a block of code that detected whether an input line ended with a period. To evaluate a million input lines, create a loop that runs a million times.

(コードブロックは同じ関数にある隣り合うコードを任意の数だけ集めたものを指す。例えば、入力行がピリオドで終わったかを検出するコードブロックがあったとしよう。百万行の入力行を評価するには、そのブロックを百万回実行するループを作ればよい。)

練習問題

次の段落の書き出しは効果的ですか? それとも何か問題がありますか?

The Pythagorean Theorem states that the sum of the squares of both legs of a right triangle is equal to the square of the hypotenuse. The k-means clustering algorithm relies on the Pythagorean Theorem to measure distances. By contrast, the k-median clustering algorithm relies on the Manhattan Distance.

(ピタゴラスの定理は「直角三角形の二つの足の二乗の和が斜辺の二乗に等しい」というものである。k-means クラスタリングアルゴリズムは距離を測るのにピタゴラスの定理を使う。これに対して、k-median クラスタリングアルゴリズムはマンハッタン距離を使う。)

この書き出しの文は段落がピタゴラスの定理であることをほのめかしているので、問題があります。この段落は実際に述べているのはクラスタリングアルゴリズムなので、次のようにすればより効果的な書き出しとなります:

Different clustering algorithms measure distances differently.

(異なるクラスタリングアルゴリズムは異なる方法で距離を測定する。)

注意: 効果的な書き出しには様々な形があります。つまり、全ての優れた段落がテーマを提示する文から始まるわけではありません。例えば段落を修辞疑問文 (レトリカルクエスチョン) で始めても読者を惹き付けることができます。

一つの段落では一つのことを述べる

一つの段落は一つの独立した論理の単位を表すべきです。各段落の内容はその時点におけるトピックだけに制限し、これからのトピックで起こることやこれまでのトピックで起きたことを説明しないでください。推敲では、その時点におけるトピックに直接関係のない文を容赦なく全て削除 (あるいは別の段落に移動) しましょう。

例えば次の段落の書き出しが現在のトピックに沿っているとします。このとき、段落から取り除くべき文を見つけられますか?

The Pythagorean Theorem states that the sum of the squares of both legs of a right triangle is equal to the square of the hypotenuse. The perimeter of a triangle is equal to the sum of the three sides. You can use the Pythagorean Theorem to measure diagonal distances. For example, if you know the length and width of a ping-pong table, you can use the Pythagorean Theorem to determine the diagonal distance. To calculate the perimeter of the ping-pong table, sum the length and the width, and then multiply that sum by 2.

(ピタゴラスの定理は「直角三角形の二つの足の二乗の和が斜辺の二乗に等しい」というものである。三角形の全周は三つの辺の和を意味する。ピタゴラスの定理は対角線の長さを測るのに利用できる。例えば、もしピンポンテーブルの横の長さと縦の長さが分かっていれば、ピタゴラスの定理を使って対角線の長さが計算できる。ピンポンテーブルの全周を求めるには、縦の長さと幅を足し、その和に 2 を書ければよい。)

二つ目と五つ目の文を削除すると、ピタゴラスの定理だけに関する段落となります:

The Pythagorean Theorem states that the sum of the squares of both legs of a right triangle is equal to the square of the hypotenuse. The perimeter of a triangle is equal to the sum of the three sides. You can use the Pythagorean Theorem to measure diagonal distances. For example, if you know the length and width of a ping-pong table, you can use the Pythagorean Theorem to determine the diagonal distance. To calculate the perimeter of the ping-pong table, sum the length and the width, and then multiply that sum by 2.

(ピタゴラスの定理は「直角三角形の二つの足の二乗の和が斜辺の二乗に等しい」というものである。三角形の全周は三つの辺の和を意味する。 ピタゴラスの定理は対角線の長さを測るのに利用できる。例えば、もしピンポンテーブルの横の長さと縦の長さが分かっていれば、ピタゴラスの定理を使って対角線の長さが計算できる。ピンポンテーブルの全周を求めるには、縦の長さと幅を足し、その和に 2 を書ければよい。)

練習問題

次の段落から余計な文を取り除いてください。書き出しの文が正しいテーマを提示しているとします。

Spreadsheets provide a great way to organize data. Think of a spreadsheet as a table with rows and columns. Spreadsheets also provide mathematical functions, such as means and standard deviations. Each row holds details about one entity. Each column holds details about a particular parameter. For example, you can create a spreadsheet to organize data about different trees. Each row would represent a different type of tree. Each column would represent a different characteristic, such as the tree's height or the tree's spread.

(スプレッドシートはデータを整理する優れた方法を提供する。スプレッドシートを列と行を持った表だと考えるとよい。スプレッドシートは平均値や標準偏差といった数学関数も提供する。各列があるエンティティに関する詳細を保持し、各列が特定のパラメータに関する情報を保持する。例えば、異なる種類の木に関するデータを整理するスプレッドシートを作るのであれば、各行がそれぞれ異なる種類の木を表し、各列がそれぞれ木の高さや枝張りといった異なる特徴を表す。)

この段落はデータの整理方法としてのスプレッドシートに焦点を当てています。三つ目の文はこのテーマから外れているので、この文をスプレッドシートの数学操作に関する別の段落に移動させるべきです。

Spreadsheets provide a great way to organize data. Think of a spreadsheet as a table with rows and columns. Spreadsheets also provide mathematical functions, such as means and standard deviations. Each row holds details about one entity. Each column holds details about a particular parameter. For example, you can create a spreadsheet to organize data about different trees. Each row would represent a different type of tree. Each column would represent a different characteristic, such as the tree's height or the tree's spread.

(スプレッドシートはデータを整理する優れた方法を提供する。スプレッドシートを列と行を持った表だと考えるとよい。スプレッドシートは平均値や標準偏差といった数学関数も提供する。 各列があるエンティティに関する詳細を保持し、各列が特定のパラメータに関する情報を保持する。例えば、異なる種類の木に関するデータを整理するスプレッドシートを作るのであれば、各行がそれぞれ異なる種類の木を表し、各列がそれぞれ木の高さや枝張りといった異なる特徴を表す。)

段落を適切な長さに保つ

長い段落は視覚的に読者を威圧します。非常に長い段落は恐ろしい「文章の壁」となり、読者はその段落を読み飛ばします。一般的に言って読者が期待するのは文が三つから五つの段落であり、文が七つを超える段落は読もうとしません。推敲では非常に長い段落を二つに分けることを考えてください。

逆に、段落を非常に短くするのも避けるべきです。もしドキュメントに一文からなる段落が多く含まれるなら、ドキュメントの構成に問題があります。一文からなる段落を組み合わせて互いに関連する文からなる段落あるいはリストにする方法を模索してください。

what, why, how に答える

良い段落は次の三つの疑問に答えます:

  1. what: 読者に伝えたいことは何か

  2. why: 読者がそれを知ることがなぜ重要なのか?

  3. how: 読者はその知識をどう使うのか? あるいは、読者はどうやって書かれていることが正しいと納得するのか?

例えば、次の段落は what, why, how に適切に答えています:

<what 始まり> The garp() function returns the delta between a dataset's mean and median.<what 終わり> <why 始まり> Many people believe unquestioningly that a mean always holds the truth. However, a mean is easily influenced by a few very large or very small data points.<why 終わり> <how 始まり> Call garp() to help determine whether a few very large or very small data points are influencing the mean too much. A relatively small garp() value suggests that the mean is more meaningful than when the garp() value is relatively high.<how 終わり>

<what 始まり> garp() 関数はデータセットの平均値と中央値の差を返す。<what 終わり> <why 始まり> 多くの人は平均値が常に真実だと信じて疑わない。しかし、平均値は少数の非常に大きいデータ点あるいは非常に小さいデータ点によって簡単に影響を受けてしまう。<why 終わり> <how 始まり> garp() を呼べば、少数の非常に大きいデータ点または非常に小さいデータ点の平均値への影響が大きすぎないかを確認できる。比較的小さい garp() の値は、garp() の値が比較的大きいときよりも平均値が意味を持つことを示唆する。<how 終わり>