問題タブ [fixpoint-combinators]

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 投票する
5 に答える
4319 参照

haskell - Haskell の固定小数点コンビネータ

不動点コンビネータは、定義が与えられた場合、常に正しい答えを生成するとは限りません。

次のコードは終了しません。

もちろん、fix常に正しい答えが出せるとは限りませんが、これを改善できないかと考えていました。

確かに上記の例では、次のような修正を実装できます。

正しい出力が得られます。

上記の定義 (または、この 1 つのハンドル関数は 1 つのパラメーターしかないため、さらに優れたもの) が代わりに使用されない理由は何ですか?

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

c# - C# ジェネリックの固定小数点ジェネレーター

多くの関数型言語で見られる固定小数点ジェネレーターを C# で定義しようとしました。私は、foldr は通常、固定小数点ジェネレーターの観点から定義されると考えています。Haskell の定義と、C# での定義を示します。どんな助けでも大歓迎です。

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

haskell - OCaml のデータ型を修正

次の Haskell のデータ型は、OCaml または SML でどのように表現できますか?

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

haskell - なぜ GHC は fix をそんなに混乱させるのですか?

GHC ソース コードを見ると、fixの定義は次のようになっていることがわかります。

例では、修正は次のように使用されます。

これは基本的に、1 ずつ増加して無限大になる一連の数値を生成します。これを行うには、受信した関数を最初のパラメーターとしてその関数にカリー化する必要があります上記の修正の定義がどのようにそれを行うことができるかは、私には明らかではありません。

この定義は、修正がどのように機能するかを理解するようになった方法です。

だから今、私は2つの質問があります:

  1. 最初の定義で、xはどのようにして修正 xを意味するようになったのでしょうか?
  2. 2番目の定義よりも最初の定義を使用する利点はありますか?
0 投票する
2 に答える
814 参照

haskell - haskell - フリップ修正 / 修正

これは、 を使用する簡略化されたバージョンですflip fix
おそらくGoogle Tech Talkまたは他のトークからのYouTubeビデオでこの使用方法を見ました。

誰かが私にいくつかのポインタ(メモリアドレスではありません、ありがとう!)を教えてもらえますかfix?公式サイトのドキュメントから一般的な定義を知っています。そして、私はインターネット上の多くのものをスキャンしましたが、包括的で理解しやすい答えを見つけることができませんでした.

そしてflip fix、私には謎のように見えます。その特定の関数呼び出しで実際に何が起こったのでしょうか?

ところで、Haskell を手に入れたのはちょうど 2 か月前のことです。そして、私は数学があまり得意ではありません:(


これは、そのプレゼンテーションを行った人が共有している完全なコードです。

(ああ、ここにゲームを説明するwikiリンクがありますmastermind クリックしてください)

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

functional-programming - 固定小数点コンビネータ

私は固定小数点コンビネータの世界に不慣れで、無名ラムダの再帰に使用されていると思いますが、実際にそれらを使用する必要はなく、頭を完全に包むことさえできませんでした。

Y コンビネータの Javascript の例を見たことがありますが、うまく実行できませんでした。

ここでの質問は、直感的な答えを誰かが与えることができるかということです:

  • 固定小数点コンビネータとは何ですか (理論的にだけでなく、いくつかの例のコンテキストで、そのコンテキストで固定小数点が正確に何であるかを明らかにします)?
  • Y-コンビネータ以外の固定小数点コンビネータにはどのようなものがありますか?

ボーナス ポイント:例が 1 つの言語だけでなく、できればClojureでもある場合。

アップデート:

Clojureで簡単な例を見つけることができましたが、それでも Y-Combinator 自体を理解するのは難しいと感じています。

例は簡潔ですが、関数内で何が起こっているのかを理解するのは難しいと思います。提供されるヘルプは役に立ちます。

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

haskell - フリーモナドとファンクターのフィックスポイントの違いは?

私はhttp://www.haskellforall.com/2013/06/from-zero-to-cooperative-threads-in-33.htmlを読んでいました.ここでは、抽象構文木は、指示。フリーモナドFreeは、ファンクターFixの固定点演算子とあまり変わらないことに気付きました。

この記事では、モナド操作とdo構文を使用して、これらの AST (フィックスポイント) を簡潔な方法で構築します。それが無料のモナドインスタンスの唯一の利点なのだろうか?それが可能にする他の興味深いアプリケーションはありますか?

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

haskell - Haskell の再帰関数と再帰ラムダ

私は少し混乱しています。Haskell で通常の再帰関数を定義することには問題はありません。同時に、fix固定小数点を介して再帰ラムダを定義するための標準関数があります。しかし、そのように定義された再帰ラムダは読みにくいだけでなく、自分自身を直接呼び出す通常の再帰関数と比較してアプリケーションのオーバーヘッドがあります。では、再帰ラムダと が実際に必要になるのはどこでしょうfixか?

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

haskell - F 代数における Fix/Mu のジェネリック インスタンスの記述

Milewski の F 代数の記事を読んだ後、それを実装して実際の問題に使用しようとしました。ただし、 のインスタンスの書き方がわかりませんFix

たとえば、次の単純な代数があるとします。

Eqそして今、私は(注:deriving動作しません)のインスタンスを実装しようとしています:

そして、これは私が立ち往生するところです。これを機能させるには、どのように入力すればよい???ですか? これは可能ですか?