私は言語を学び始めているCommon Lisp初心者です。私の質問です:いくつかの関数は、さまざまな方法で述語構文を使用して見てきました。例えば(これを見てください)、streampとpathnamepがありますが、input-stream-pとoutput-stream-pもあります。 * pまたは* -pを使うためにすべての関数が標準化されていないのはなぜですか?これは単なる歴史的な人工物だろうか?述語の命名規則が機能によって異なるのはなぜですか?
答えて
ルールはマルチワード述語名は-P
で終わるながら1ワードの述語名は、ちょうどP
に終わるということです。前者の理由は主に歴史的です。後者の理由は、input-streamp
のような名前は、質問されている質問が「この入力はストリームですか?」またはそのようなものであると誤って示唆しています。
私は 'predicatep'と' complex-predicate-p'(あるいは 'simplep'と' complex-predicate-p')を原則としています。 – Vatine
場合によっては、複数単語の述語にハイフンを追加しないこともあります(例: 'string-lessp')。 [Common Lisp the Language、2nd Edition](http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node69.html)を参照してください。 – coredump
また、 'atom'があります:)。[Common Lisp the Language、2nd Edition](http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node73.html) –
- 1. データベースオブジェクトの正式な命名規則がないのはなぜですか?
- 2. cakePHPの命名規則はどのように機能しますか?
- 3. STL命名規則を使用しているのはなぜですか?
- 4. 変数とゲッターの命名規則が衝突しないようにQt命名規則?
- 5. 命名規則
- 6. 命名規則
- 7. アトリビュート、メソッド、クラスを異なる言語で命名する際の好ましい規則は何ですか?
- 8. Pythonのテストファイルに最適な命名規則は何ですか?
- 9. 命名規則が集中
- 10. RAIIクラスの一般的な命名規則は何ですか?
- 11. serialVersionUID命名規則
- 12. Rails、命名規則
- 13. ビットマスクパラメータ命名規則?
- 14. インテントキー命名規則
- 15. 同じデータだが異なる種類の変数の命名規則
- 16. 類似のパラメータで異なる型を返すメソッドの命名規則
- 17. このProlog述語はなぜ機能しますか?
- 18. Railsマイグレーションの命名規則
- 19. Pythonのモジュール命名規則
- 20. cssメニューの命名規則
- 21. Eclipseプロジェクトの命名規則
- 22. AngularJsディレクティブの命名規則
- 23. デコレータのPython命名規則
- 24. モジュラーアプリケーションのデータベーステーブル命名規則
- 25. HTML/CSSの命名規則
- 26. ベースファイルの命名規則
- 27. プロパティの命名規則
- 28. テンプレートオブジェクトの命名規則
- 29. アップロードの命名規則
- 30. Facebookスタイルの命名規則
ほとんどの歴史的な - Common Lispは、大部分のLisp実装からのすべての単純な組合として大部分が終了しました。ほとんどすべては、既存のコードが、本当によく合います。 –
これは実際には「構文」ではありません。「命名規則」 – GoZoner
@GoZoner良い点が修正されました。 –