問題タブ [frege]
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.
frege - Frege オンライン repl で切り取ったコンパイル済みコードを実行する方法
OK、これはばかげた初心者の質問だと思います。
私はオンライン repl を通じてフレーゲを学ぼうとしています。そのためには、Dierk の Real World Frege のコード例をrepl の右上のウィンドウに貼り付け、コンパイルを押して... ? このコードを開始するにはどうすればよいですか?
java - Clojure から Frege 関数に整数のリストを渡す方法は?
前の質問に触発されて、java から frege 関数に整数のリストを渡す最も簡単な方法は何ですか? @Ingoによる回答のコメント、私は試しました
しかし、取得します(ctor =コンストラクター):
何か案は?少なくともjava.util.ListClassCastException は発生しませんでした。これは正しい軌道に乗っているということですか?
Clojure からほとんどすべての Java コレクション型を Frege に送信できます。Clojure データ構造を Java コレクションに変換するを参照してください。
ところで、(Foo/myfregefunction [1,2,3,4])代わりにプレーンを使用すると yield が得られますがClassCastException clojure.lang.PersistentVector cannot be cast to free.runtime.Lazy、@Ingo は「クロージュア リストはフレージ リストではありません」と指摘しています。としてキャストしたときの同様の応答java.util.ArrayList。
Frege側では、コードは次のようなものです
haskell - 機能的な n:1 バイマップはありますか?
複数のキーを同じ値にマップできるマップがあります。値を指定すると、この値にマップされるすべてのキーのリストを取得できるように、逆ルックアップを実行したいと思います。私のマップとは異なり
Data.Bimap、1:1 ではなくn :1 であることに注意してください。
また、逆引きは、すべてのマップ エントリを実行する場合のようにO(n)を使用するのではなく、O(log n)または逆引きインデックスの場合のように使用する必要があります。マップには、追加/削除/検索操作の負荷が高い、何万ものエントリが含まれます。
そのようなデータ構造は関数形式で利用できますか (Haskell または Frege が推奨されます)?
haskell - `liftM b ap c` のように括弧を使用して式を明確にします
Haskell では、次のように動作します。
括弧を使用するフレーゲのヒント:
Haskellレポートでこのセクションを見つけました:
中置演算子を含む式は、演算子の固定性によって明確になります (セクション 4.4.2 を参照)。構文エラーを回避するために、同じ優先順位を持つ括弧で囲まれていない連続した演算子は、両方とも左結合または右結合である必要があります。括弧なしの式 "x qop(a,i) y qop(b,j) z" が与えられた場合、"x qop(a,i) y" または "y qop(b,j) z" のいずれかを括弧で囲む必要があります。 a=b=l または a=b=r でない限り、i=j。
上記のコードでは、両方の「演算子」に結合性がなく、デフォルトの優先順位が同じであるため、Frege の動作は Haskell レポートと一致しているように見えます。
私はこれを正しく理解していますか?この場合、Haskell では曖昧さをなくすことができるのに、なぜ Frege では括弧が必要なのですか? またはこの場合、Haskellはどのようにして曖昧さを解消できますか?