0

Objective-C またはキーワード メッセージ構文をサポートする別の言語の例を提供するデータ構造/アルゴリズムの本を検索してみましたが、役に立ちませんでした。

私がこれに興味を持った理由は、キーワード構文がコードの意図を理解するのに役立つと本当に思っているからです。これは、典型的な関数呼び出し構文を使用する言語では、より長く考えなければならないことがわかりました。

良い例は、C でのSplayTree実装からの次のスニペットです。

/* Continue down the tree.  */
n = splay_tree_splay_helper (sp, key, next, node, parent);

関数名はかなり役に立たず、コメントがあっても、そこで実際に何が起こっているのかを理解するには、コードを徹底的に読む必要があります。

技術的には、C コードのどの部分も有効な Objective-C であることはわかっていますが、Objective-C のような優れたオブジェクト モデルを使用してアルゴリズムの実装を構築するものを探しています。これは、パフォーマンスが制限されたアルゴリズム設計の領域では直観に反するように思えるかもしれませんが、慣用的な Ruby、Python、Javascript などの例を含むアルゴリズムの本をたくさん見てきました。

基本的に、Objective-C であろうと (おそらくありそうもないことですが) Smalltalk ファミリーの他のものであろうと、非常にわかりやすいキーワード メッセージを可能にする優れたオブジェクト モデルを備えたものを探しています。

4

2 に答える 2

2

あなたは間違ったものを探していると思います。

優れたアルゴリズムとデータ構造の本は、読みにくいソース コードで時間を無駄にしないように努めます。私が知っている優れた本のほとんどは、大まかな説明にほとんどの時間を費やしており、実際のコードを小さなスニペットで示しているだけで、使用する言語やその言語の習熟度に関係なく簡単に理解できます。

ある人のスプレー ツリーの実装がどれほど複雑であるかは問題ではありません。スプレイツリーが何であるかを知っている限り、ヒットをあまり見ずに独自のバージョンを実装できるはずです。

最後に、優れたオブジェクト モデルと適切な構文は、万能ではありません。多くのデータ構造は、オブジェクト指向スタイルではあまりうまく実装されていない共用体型を使用しています。命名パターンと構文は、すぐに慣れることができるはずです。

于 2012-03-26T19:43:30.263 に答える
2

なぜあなたは本が欲しいのですか?smalltalk 環境をダウンロードして、実際のソース全体を読むだけです。システム ブラウザーを開き、コレクション カテゴリ (クラスのコレクション) の 1 つを選択して、コードの参照を開始します (余分な列はメッセージ カテゴリ用です)。ワークスペースを開き、Object cmd-B (参照の場合は ctrl-B) と入力して、単一責任の原則が考案された理由を自分の目で確かめてください。階層、送信者、および実装者を使用してコードをナビゲートします。

于 2012-03-27T19:21:42.100 に答える