私は C# 構文に精通しているので、それを使用しますが、言語固有のものではありません。
Tree
を調べて、それぞれで何かを行う
ための API を提供したいとしましょうNode
。
解決策 1:ツリー内の各ノードで , およびvoid Visit(Tree tree, Action<Node> action)
をtree
呼び出します。action
解決策 2:各ノードを調べて呼び出すことができるように、フラットな遅延シーケンスIEnumerable<Node> ToEnumerable(Tree tree)
に変換します。tree
action
それでは、ある API を別の API に変換する方法を見てみましょう。
Visit
上に提供するのは非常に簡単ですToEnumerable
:
void Visit(Tree tree, Action<Node> action) {
ToEnumerable(tree).ForEach(action);
}
ただし、 (遅延シーケンスとして、リストは事前に作成されません)ToEnumerable
上に提供できる言語の概念/機能はありますか?Visit