簡単に推論できるのは文化的に特定の用語であるため、具体的な例を見つけるのは非常に困難です。それは推論を行うことになっている人々に固定されている用語です。
「推論するのは簡単」は実際には非常に自己記述的なフレーズです。コードを見ていて、それが何をするのかを推論したい場合は、簡単です=)
さて、それを分解します。コードを見ている場合、通常は何かをしたいでしょう。あなたはそれがあなたがすべきだと思うことをすることを確認したい。そのため、コードが何をすべきかについての理論を開発し、それについて推論して、コードが実際に機能する理由を主張しようとします。コードを人間のように(コンピューターではなく)考え、コードができることについての議論を合理化しようとします。
「推論しやすい」の最悪のケースは、コードが何をするのかを理解する唯一の方法が、すべての入力に対してチューリングマシンのようにコードを1行ずつ実行することである場合です。この場合、コードについて何かを推論する唯一の方法は、自分をコンピューターに変えて頭の中で実行することです。これらの最悪の例は、RSAを復号化する次の3行のPERLなど、難読化されたプログラミングコンテストで簡単に見られます。
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
簡単に言うと、この用語は非常に文化的です。あなたが考慮する必要があります:
- 推論システムにはどんなスキルがありますか?どのくらいの経験ですか?
- 推論者はコードについてどのような質問をするでしょうか?
- 推論システムはどの程度確実である必要がありますか?
これらはそれぞれ、「推論するのが簡単」に異なる影響を及ぼします。推論者のスキルを例に取ります。私が会社を始めたとき、「推論するのが簡単」であるため、MATLABでスクリプトを開発することをお勧めしました。どうして?さて、会社の全員がMATLABを知っていました。別の言語を選択した場合、誰もが私を理解するのが難しくなります。MATLABの読みやすさは、単にタスク用に設計されたものではないという理由だけで、一部のタスクにとってひどいものであることを決して忘れないでください。その後、私のキャリアが進むにつれて、Pythonはますます人気を博しました。突然MATLABコードは「推論するのが難しい」ようになり、Pythonは推論するのが簡単なコードを書くための好みの言語でした。
また、読者が持っているかもしれないidomを検討してください。特定の構文でFFTを認識するために読者に頼ることができる場合、その構文に固執する場合、コードについて「推論するのがより簡単です」。これにより、テキストファイルを、FFTをペイントしたキャンバスとして見ることができます。C ++を使用している場合は、読者がstd
ライブラリにどの程度慣れているかを調べてください。関数型プログラミングはどれくらい好きですか?コンテナライブラリから出てくるイディオムのいくつかは、どのイデオムスタイルを好むかに非常に依存しています。
また、読者が回答に関心を寄せる可能性がある質問の種類を理解することも重要です。読者は主にコードの表面的な理解に関心がありますか、それとも腸の奥深くにバグを探していますか?
読者がいかに確実でなければならないかは、実際には興味深いものです。多くの場合、あいまいな推論は実際に製品をドアから出すのに十分です。FAAフライトソフトウェアなどの他の場合、読者は確固たる推論を得たいと思うでしょう。特定のタスクにRAIIを使用することを主張するケースに遭遇しました。「セットアップするだけでそれを忘れることができます...正しいことをするからです」。私はそれについて間違っていると言われました。このコードについて推論しようとしていた人たちは、「詳細を忘れたいだけ」という人たちではありませんでした。彼らにとって、RAIIは吊り下げ式のチャドに似ていて、あなたがスコープを離れるときに起こりうるすべてのことを考えさせる。