問題タブ [disjoint-union]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - クロージャ コンパイラのタグ付きユニオン
私は現在、Google Closure CompilerとFlow静的型チェッカーの表現力を比較しています。後者について私が気に入っているのは、タグ付けされた共用体を非常にうまく表現できるようだということです。マニュアルには、次の例が示されています。
Closure Compiler を使用してこのようなことを行う方法はありますか? これは、オブジェクトの特定のプロパティを特定のタイプにするだけでなく、固定値を持つようにする何らかの方法を意味しますか? そして、その値を型推論に使用して、ユニオン内のさまざまなオプションを区別するには? この趣旨の文書は見つかりませんでした。
algorithm - Disjoint Setsを使用して無向グラフでサイクルを検出する方法は?
アルゴリズム:
グラフ:
(1)------(2)
隣接リスト:
[1] -> [2]
[2] -> [1]
素集合:
{{1}、{2}}
反復 1 :
エッジ e = (1, 2)
ユニオン(1, 2)
素集合 = {{1, 2}}
反復 2 :
エッジ e = (2, 1)
2 と 1 の両方が同じセットに属しているため、アルゴリズムはサイクルを検出します。グラフにサイクルが含まれていないことは明らかです。
このアルゴリズムは、有向グラフに対して問題なく機能します。この分析を手伝ってください。