問題タブ [forall]
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.
haskell - Haskell/GHC の `forall` キーワードは何をしますか?
forall
次のように、いわゆる「存在型」でキーワードがどのように使用されるかを理解し始めています。
ただし、これは がどのように使用されるかのサブセットにすぎず、次のforall
ような用途での使用に頭を悩ませることはできません。
または、これらが異なる理由を説明します。
それとも全部RankNTypes
...
私は、アカデミックな環境で普通に使われている種類の言語よりも、明確で専門用語のない英語を好む傾向があります。私がこれについて読もうとしている説明のほとんど (検索エンジンで見つけることができるもの) には、次のような問題があります。
- それらは不完全です。
runST
彼らは、このキーワードの使用の一部 (「存在型」など) を説明しており、それをまったく異なる方法で使用するコード (や上記など)foo
を読むまで、私は幸せに感じます。bar
- それらは、離散数学、圏論、または抽象代数の今週人気のある分野の最新のものを私が読んだという仮定がぎっしりと詰め込まれています。(「実装の詳細については論文を参照してください」という言葉を二度と読まなければ、早すぎます。)
- それらは、単純な概念でさえ、曲がりくねってねじれ、断片化された文法と意味論に頻繁に変わる方法で書かれています。
そう...
実際の質問に進みます。forall
私が専門用語にどっぷりと浸かっている数学者であると想定しない、明確で平易な英語でキーワードを完全に説明できる人はいますか?
追加するために編集:
以下のより質の高いものから2つの際立った回答がありましたが、残念ながら私は1つだけを最高のものとして選ぶことができます. ノーマンの答えは詳細で有用であり、理論的基盤のforall
いくつかを示すと同時に、それの実際的な意味のいくつかを示す方法で物事を説明しました. ヤルチュの答え誰も言及していない領域 (スコープ型変数) をカバーし、すべての概念をコードと GHCi セッションで説明しました。両方を最良のものとして選択することが可能であれば、私はそうします. 残念ながらできません。両方の回答を詳しく調べた後、例示的なコードと添付の説明のために、yairchu のほうが Norman のものよりわずかに優れていると判断しました。ただし、これは少し不公平です。実際には、これを理解するために両方の答えが必要だったのでforall
、型シグネチャで見たときにかすかな恐怖感を残さないほどです。
c# - コード コントラクトでの Contract.ForAll の使用
わかりました、コード コントラクトに関する別の質問があります。私は次のようなインターフェイス メソッドのコントラクトを持っています (明確にするために他のメソッドは省略されています)。
次のようなインターフェイスを使用するコードがあります。
AddRequested
null 以外の入力パラメーターが必要なため (Requires コントラクトを持つインターフェイスを実装する)、渡される subGroup で「requires unproven: group != null」エラーが発生しますAddRequested
。ForAll 構文を正しく使用していますか? そうであり、ソルバーが単に理解していない場合、ソルバーがコントラクトを認識できるようにする別の方法はありますか、または GetAllGroups() が呼び出されるたびに Assume を使用する必要がありますか?
.net - PLINQの更新に失敗しました
私の英語でごめんなさい。だから、これが私がPLINQによってDataTableを更新しようとしている私の質問ですこれが私のコードです
ただし、例外があります:「インデックスが範囲外でした。負ではなく、コレクションのサイズ未満である必要があります。パラメータ名:インデックス」
私を助けてください
parallel-processing - Fortran の FORALL 構文が確実に並列化されるようにするにはどうすればよいですか?
金属板の表面の温度点を表す 2D マトリックスが与えられました。マトリックス (プレート) のエッジは 20 ℃ で一定に保たれ、事前に定義された 1 点には 100 ℃ の一定の熱源があります。他のすべてのグリッド ポイントは、最初は 50 ℃ に設定されています。
私の目標は、すべての内部グリッド ポイントを取得し、収束 (の変化反復間で 0.02 ℃ 未満)。
私の知る限り、グリッド ポイントを反復処理する順序は関係ありません。
私には、これは FortranFORALL
構造を呼び出して並列化の楽しさを探求する絶好の機会のように思えます。
コードが実際に並列化されていることを確認するにはどうすればよいですか?
たとえば、シングル コアの PowerBook G4 でこれをコンパイルできますが、並列化による速度の向上は期待できません。しかし、デュアル コア AMD Opteron でコンパイルすると、FORALL コンストラクトを悪用できると思います。
あるいは、プログラムの効果的な並列化を測定する方法はありますか?
アップデート
MSB の質問に答えて、これは gfortran バージョン 4.4.0 を使用しています。gfortran は自動マルチスレッドをサポートしていますか?
FORALL コンストラクトが時代遅れになったことは注目に値します。おそらく、当時の自動ベクトル化です。
おそらくこれは別の質問に最適ですが、自動ベクトル化はどのように機能しますか? コンパイラは、純粋な関数またはサブルーチンのみがループで使用されていることを検出できますか?
c# - コード コントラクト、forall およびカスタム列挙可能
私は C# 4.0 と Code Contracts を使用しており、独自のカスタムGameRoomCollection : IEnumerable<GameRoom>
.
のインスタンスに値要素GameRoomCollection
が含まれないようにしたいと思います。null
しかし、私はこれができないようです。一般的なルールを作成する代わりに、わかりやすく単純な例を作成しようとしました。はのAllGameRooms
インスタンスですGameRoomCollection
。
なぜ私が証明していないのか、誰にもわかりますgameRoom
かnull
?
編集:
反復する前にオブジェクトの参照を追加しても機能しません。
EDIT2:
ただし: ゲーム ルームのコレクション タイプを配列に変換すると、正常に動作します。
IEnumerable<T>
これは、インターフェイスのメソッドのルールを定義できないことが原因ですか?
EDIT3:問題はこの質問に何らかの形で関連している可能性がありますか?
haskell - Haskell型システムで「存在する」とはどういう意味ですか?
exists
Haskell 型システムに関連するキーワードを理解するのに苦労しています。私の知る限り、Haskell にはデフォルトでそのようなキーワードはありませんが、
- これらのような宣言で、それらを追加する拡張機能があります
data Accum a = exists s. MkAccum s (a -> s -> s) (s -> a)
- 私はそれらについての論文を見たことがあります.(私の記憶が正しければ)
exists
型システムにはキーワードは不要であると述べられています.forall
しかし、私には意味さえ理解できませんexists
。
私が言うときforall a . a -> Int
、それは(私の理解では、間違っていると思います)「すべての(タイプ)a
に対して、タイプの関数がある」ことを意味しますa -> Int
:
私が言うときexists a . a -> Int
、それはどういう意味ですか?a
「型の関数がある型が少なくとも 1 つあるa -> Int
」? なぜそのような声明を書くのでしょうか?何の目的?セマンティクス?コンパイラの動作?
コンパイルできる実際のコードを意図したものではないことに注意してください。これらの量指定子について私が想像している例にすぎません。
PS 私は Haskell の完全な初心者ではありませんが (おそらく 2 年生のように)、これらのことに関する数学の基礎が欠けています。
plsql - PL/SQLでforallループを実行する場合、後でコミットする必要がありますか?
PL/SQLのforallループは特定の間隔で自動的にコミットされますか?またはループ後にコミットする必要がありますか?
オラクル 10g および 11g
現在、一括収集を行う pl/sql スクリプトを取得し、コレクションを反復処理する 3 つの異なる forall ループを実行しています。私は現在、各 forall ループが完了した後に、スクリプトに commit ステートメントを使用してコミットしています。これは必要ですか?特にコレクションに数百万のエントリがある場合、実行が遅くなりますか?
ありがとう
haskell - 明示的に言及されていない場合、モジュールに RankNTypes または ExistentialTypes が必要かどうかを知る方法は?
たとえば、パッケージのソースでは、memocombinators
LANGUAGE プラグマが明示的に言及されておらず、明示的な forall ステートメントをサポートする拡張機能が含まれていないため、インポートしようとするとエラーが発生します。この場合、どの拡張子が必要かを知るにはどうすればよいですか?
scala - forall の Scala
以下に示すように、Haskell では、特定のコンテキスト境界を持つ異種の型を持つリスト値を格納することができます。
できればサブタイプなしで、Scalaで同じことを達成するにはどうすればよいですか?
list - Prologのリストから可能なすべてのオプションを選択する
だから私は農夫-オオカミ-ヤギ-キャベツ-肥料のパズルを解くのに役立つさまざまな手順を書かなければなりません。それを知らない人のために、それは農民が川の北岸から他のすべての物で南岸に渡らなければならないことを含みます。銀行は3つの状況で安全になります:農民がいる、またはオオカミが山羊と一緒に残されていない、または山羊がキャベツと一緒に残されていない。演習では、変数は[f、b、g、w、c]になります。
私が立ち往生している手順(choose(Bank、Items))には、銀行からの輸送の一部であり、安全でないままにすることができる1つまたは2つの要素(常に農家を含む-f)のリストを見つけることが含まれます。
([g、f、b]、Items)を選択した場合、Itemsの可能な戻り値は[f]、[f、g]、[f、b]になります。ただし、([g、f、c]、Items)を選択した場合、ヤギとキャベツを一緒に残すことはできないため、返される可能性のある値は[f、c]または[f、g]のみです。
したがって、誰かが私にアイテムのすべての可能なオプションを取得する方法のヒントを教えてもらえますが、リストでは2つ以下のアイテムですか?