私はよく読み書きのできるプログラムをたくさん書いていました。
あなたはハドックのコメントとして何を書きますか、そしてあなたは読み書きのできる部分に何を書きますか?
外部APIのドキュメントは、Haddockのコメントに含まれています。他のすべては読み書きのできる部分に入ります。「その他すべて」には、次のものが含まれる場合があります。
- データ構造の内部不変量
- なぜあなたはこのように物事をしているのですか
- コードのデザインは何ですか
- このデザインが選ばれた理由、他にどのようなデザインが試され、欲しかったのか
文芸的プログラミングを複数のファイルにどのようにスケーリングしますか?
大きなLaTeXドキュメントを複数のファイルにスケーリングするのと同じ方法です。モジュールごとに1つのファイルを作成し、次に\include
それらすべてを含む巨大なファイルを作成します。
複数のモジュールを含むパッケージで文芸的プログラミングが使用されている例を誰かに教えてもらえますか?
Haskellではありませんが、Quick C--コンパイラは、文芸的プログラミングを使用して記述された大規模な関数型プログラムです。
より大きなパッケージで文芸的プログラミングを使用した経験は何ですか?
文芸的プログラミングは、トリッキー、難しい、または複雑なモジュールを文書化するのに非常にうまく機能します。ほとんどの単純なモジュールの場合、外部APIドキュメント(Haddockなど)で十分です。そして、12を超えるモジュールを含む設計の全体像を実際に提供する文芸的プログラムはありません。そのためには、他のツールやテクニックが必要です。
読み書きのできるHaskellのどのフレーバー(マークダウン、ラテックスなど)が好ましいですか?
あなたがそのような大規模な投資をしているのなら、数学の能力と一般的にツールのより大きな力のために、私は間違いなくLaTeXを使うでしょう。
なぜあなたは読み書きのできるHaskellやプレーンなバニラHaskellでプログラミングしているのですか?両方のスタイルでプログラミングしていますか?もしそうなら、なぜですか?
私のHaskellコードは、2つの理由から、ほとんどの場合すべてプレーンバニラです。
私はHaskellの経験が豊富な高齢者と協力しており、彼らは読み書きのできるHaskellを放棄しています。システム内で最も古いモジュールのみが.lhsになる可能性があります。
Haskellにとって、文芸的プログラミングは一種の不必要です。文芸的プログラミングツールの大きな利点の1つは、コンパイラまたは言語定義がコードの表示順序に課す可能性のある制約から解放されることです。しかし、Haskellにはそのような制約はほとんどありません。使用前の定義はありません。一般的な関数定義では、let
-bindingまたはwhere
-binding補助名(あるいはその両方)を選択できます。 文芸的プログラミングは決して派手なコメントだけではありませんでした、そして「文芸的」Haskellであなたが得るすべてについてです。わざわざする価値はありません。
ブロックスタイル(\ begin {code})またはバードスタイル(>)のどちらが好きですか?なんで?
私はブロックスタイルを強く好みます: