問題タブ [functional-dependencies]

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.

0 投票する
3 に答える
1118 参照

logging - F# アプリケーション構造のロギング / リポジトリなど

多くのホーム プロジェクトで徐々に F# に切り替えていますが、完全なアプリケーションをどのように接続するか、特に分野横断的な懸念事項について少し困惑しています。

C# で何かをログに記録したい場合は、依存性注入を使用して ILogger を各クラスに渡し、これをコードから簡単に呼び出すことができます。モックを渡して検証することで、特定の状況でログが書き込まれることをテストで検証できます。

F# では、モジュールをより多く使用しているため、上記は次のようになります。

Logging というモジュールがあれば、それを開いて、y が 0 の場合にそこからログ関数を使用することができますが、単体テストのためにこれをどのように注入すればよいでしょうか?

各関数にログ関数 (文字列 -> 単位) を使用させ、部分的なアプリケーションを使用してそれらを接続することもできますが、実際の呼び出しをログ呼び出し内にラップする新しい関数を作成する場合と同様に、非常に多くの作業のように思えます。それを行うことができる特定のパターンまたは私が見逃している F# のビットはありますか? (私は kprintf 関数を見てきましたが、完全なアプリケーションの具体的な実装を使用しながら、さまざまなテスト シナリオで関数を指定する方法をまだ知りません)

同様に、データを取得したリポジトリをどのようにスタブ化しますか? いくつかのクラスをインスタンス化し、それに CRUD 関数を設定する必要がありますか、または (#define を除いて) 開いているモジュールを挿入する方法はありますか?

0 投票する
1 に答える
1236 参照

relational-database - レコードスキーマと機能依存性から候補キーを決定する方法は?

スキーマがR={A,B,C,D}あり、関数従属性がある場合{B->C, D->A}、候補キーのセットは{B,D}または{BD}ですか?

0 投票する
3 に答える
6200 参照

relational-database - 機能依存性を伴う候補キーの識別

機能依存関係でキーを識別する方法を理解できません。たとえば、次のような例を見てきました。

関係ABCDが与えられた場合、そのスーパーキーを含まないすべてのキーを見つけます

これにより、キー C と A が得られます。私がこの問題にアプローチした方法は、BC と D は両方とも A と C に依存し、AB は CD に依存するというものでした。つまり、これら 3 つすべてがキーですが、CD はスーパーキーであるため (C はキーでもあるサブセット)、CD は最小限のスーパーキーとは見なされません。

ただし、別の例では、

ここでの唯一の鍵は明らかに BE です。なぜこれが真実なのか、これらの問題で鍵を見つけるための手順を誰かが明確にすることができますか?

ありがとう。

0 投票する
4 に答える
3758 参照

database-design - 無損失結合、依存関係保存、3NF データベースの設計

次の属性を追跡するデータベースを設計する必要があります。

機能的な依存関係もリストされています。

無損失結合、依存関係保持、属性の第 3 正規形分解を見つける必要があります
私はさまざまな分解を試みましたが、すべての要件に従うものはありませんでした (それらは、ロスレス結合、依存関係の保持、第 3 正規形です)。
例)元のリレーションを変更せずにそのままにしておくと (テーブルには 4 つの属性すべてが含まれます)、ロスレス結合、依存関係は保持されますが、3NF ではなく、2NF のみになります。
次の分解:

3NF にあり、依存関係を維持しますが、ロスレス結合ではありません。
私の問題の解決策はありますか?

感謝。

0 投票する
4 に答える
8483 参照

relational-database - 機能依存性を保持しない分解

BCNF分解が機能依存性を保持できないのはいつですか...たとえばR=(V、W、X、Y、Z)でこれを理解しようとしています

0 投票する
2 に答える
2465 参照

database - データベース機能の依存関係の分解

表 - 個人 {ID、名前、年齢、行 1、市区町村、州、郵便番号}

FDセット

1) ID -> PK であるため、他のすべての属性

2)かどうかを判断できません

どちらの場合も、推移的な依存関係になります。

ID -> Zip -> その他のアドレス (または ID -> アドレス関連 -> Zip)。

3NF (推移的な依存関係) に違反しています。

与えられた関係を分解する方法と、アドレス関連を含む他の関係で PK になるものを説明してください。

0 投票する
2 に答える
261 参照

database - DB 機能の依存関係。

データベースの機能依存関係の概念は理解していますが、このような形式になると、頭が回らなくなります。

この関係には、どの機能依存関係が存在しますか?

0 投票する
1 に答える
1440 参照

database - 機能依存性 些細なこと

LHS と RHS に何かがある場合、それが RHS の唯一のシンボルである場合、それは些細なことと見なされますか? 例えば:

ABC -> C

次のように分解していただけますか。

ここで、{} は空のセットです。それともこれは有効ではありませんか?

これにより、このルールは役に立たなくなり、単純に削除できますか?

0 投票する
2 に答える
214 参照

haskell - 機能依存関係を持つ型クラス インスタンスが機能しない

型クラスをいじって、一見無害に見えるものを思いついた

これはうまくいくようです、例えば

しかし、私はタプルに困っています。次の定義はコンパイルされますが...

...期待どおりに使用できません:

インスタンスを正しく定義する方法はありますか? newtypeそれとも、ラッパーに頼る必要がありますか?

0 投票する
1 に答える
403 参照

haskell - Haskell: 機能依存のないデータのシャッフル

一部のデータのフィッシャー・イェーツ・シャッフルを実装しようとしています。このアルゴリズムは、1 次元配列に対して簡単に実装できます。ただし、2 次元行列でデータをシャッフルできる必要があります。

高次元配列にうまく一般化できると思うアプローチは、任意の次元の行列をインデックスの 1 次元配列に変換し、それらをシャッフルしてから、このインデックス配列の各インデックスの要素を要素と交換して行列を再編成することです。インデックス配列の要素のインデックス。つまり、次のような 2x2 行列を取得するには:

これをこの「配列」に変換します。

これを通常どおりにスクランブルして、たとえば、

再編成すると、元のマトリックスは次のようになります。

ここでの私の基本的なアプローチは、次のような型クラスが必要だということです。

次に、次のようなシャッフルを実行する関数を用意します。

考え方は、(RandomGen配管を除いて)シャッフル可能なものを次のようにシャッフルできるはずだということです:

これが私がこれまでに持っているものです:

私の問題:

  1. これは、単純な問題を解決するための言語拡張が多いように感じます。別の書き方や書き方が分かりやすいでしょうか?
  2. コミュニティは、関数の依存関係よりも型ファミリーに移行しているように感じます。この問題を解決する代わりにそれを使用する方法はありますか?
  3. 私の一部は、fisherYates関数を何らかの形で型クラスに移動できるかどうか疑問にShuffle思っています。と の両方を実装shuffleまたは実装するように、これを設定することは可能ですか、または行う価値がありますか?indicesreorganize

ありがとう!