問題タブ [monads]
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.
functional-programming - 継続はモナドですか?
継続はモナドと言えるのか? それらはモナドのサブセットですか、それとも単にモナドを実装する方法ですか?
編集:それとも、間違っていて、モナドは継続よりも抽象的な概念ですか? (つまり、ここではリンゴとオレンジを実際に比較しています)
haskell - Haskell: あるハンドルの内容を別のハンドルにリアルタイムでパイプする方法
外部サブプロセスを対話的に実行するプログラムを作成していますが、出力ハンドルの内容が利用可能になり次第 stdout に出力されるようにする必要があります。私はこのようなことを試しました:
しかし、これは出力を行ごとにしか認識しないため機能しません。そのため、改行で終了していないプロセス出力ハンドルの出力は表示されません。hGetContents で同じことを試しましたが、同じ結果が得られます。System.Process と System.IO の両方のドキュメントを読みましたが、決定的なものは何も見つかりませんでした。
c# - C#では、モナドとは何ですか?
最近、モナドについて多くの話があります。私はいくつかの記事/ブログ投稿を読みましたが、概念を完全に理解するためにそれらの例を十分に理解することはできません。その理由は、モナドは関数型言語の概念であり、したがって、例は私が使用したことのない言語であるためです(私は関数型言語を深く使用していないため)。記事を完全に理解するのに十分なほど構文を深く理解することはできません...しかし、そこには理解する価値のある何かがあると言えます。
ただし、ラムダ式やその他の機能機能を含め、C#についてはよく知っています。C#には機能機能のサブセットしかないため、モナドをC#で表現できない可能性があります。
しかし、確かにそのコンセプトを伝えることは可能ですか?少なくとも私はそう願っています。たぶん、C#の例を基礎として提示し、C#開発者がそこからできることを望んでいるが、言語には関数型プログラミング機能がないためにできないことを説明することができます。モナドの意図と利点を伝えるので、これは素晴らしいでしょう。だからここに私の質問があります:あなたがC#3開発者にモナドについて与えることができる最も良い説明は何ですか?
ありがとう!
(編集:ちなみに、SOにはすでに少なくとも3つの「モナドとは何か」の質問があることを知っています。しかし、私はそれらについて同じ問題に直面しています...したがって、C#開発者のためにこの質問が必要です。フォーカス。ありがとう。)
closures - モナドとクロージャーの違いは何ですか?
私は2つの間の定義を読んで少し混乱しています。それらは実際に定義の観点から交差することができますか?または私は完全に失われていますか?ありがとう。
c# - C#でモナドを使用するための説得力のあるシナリオは何ですか
私はモナドについて幼児の理解を持っていることを前もって述べさせてください。私はここでモナドに関するさまざまなスレッドを読み、その概念について数時間研究しました。私はこの用語に満足することはほとんどありませんが、モナドが何であるか/何をするかは一般的に理解していると言っても過言ではありません。
私は仕事のやり方を改善しようとしているC#開発者です。私のMonaducationでさらに役立つのは、C#でのMonadの実際のアプリケーション(つまり、linq SelectMany()などを介した)を確認することです。これは、oldskool C#で同じ種類の問題を解決する他の方法よりも明らかに改善されています。
誰かがそのような獣を見たことがありますか?
haskell - Haskell:「mapputStrLn」を使用できませんか?
文字列のリストがあり、これを試しました:
それはうまくいきませんでした、そして私は理由を理解できません。
ヒントはありますか?マップが値ではなくリストを返すことに関係していると思いますが、これを修正する簡単な方法は見つかりませんでした。
現在、文字列のリストを印刷する唯一の方法は、リストを反復処理して各要素を印刷する関数を作成することです(リストが[a]の場合は印刷しますが、(a:b)の場合は印刷して繰り返します)。しかし、マップを使用する方がはるかに簡単です...
ありがとう!
haskell - Haskell でのエラー処理は、Either モナドを使用
タイプが別のタイプのサブタイプであるかどうかをチェックする関数があります。
エラーハンドリングをしたい。私は次の定義を持っています:
stの結果をEitherとして扱うことで、エラー処理を行うことができる場合があります。たとえば、次の関数は機能し、st 内で "fail" を呼び出した結果のメッセージを取得します。
今、私は st の中にいて、再帰的に呼び出したいと思っています。何らかの理由で、st に深くネストされた次のコード:
チェックを入力しませんが、次のエラーが表示されます。
st の結果をどちらかとして扱うと、'st' の外側では機能するが、内側では機能しないのはなぜですか? 内部でも動作するようにコードを変更するにはどうすればよいですか?
variables - Haskellには変数がありますか?
Haskellには変数がないという主張をよく耳にします。特に、この回答はそうではないと主張しており、少なくとも9回賛成され、受け入れられました。
それで、それは変数を持っているかどうか、そしてなぜですか?
この質問は、ML、F#、OCaml、Erlang、Oz、Lava、およびすべてのSSA中間言語にも当てはまるようです。
haskell - Haskellの初期状態を実際に「取得」するにはどうすればよいですか?
私は機能を持っています:
私はこの関数全体で何が起こっているのかをほとんど理解でき、モナドのコツをつかみ始めています。私が理解していないのは、これを実行するときの方法です:
「test」の「get」関数は、どういうわけか初期状態「testtest」を取得します。誰かがこれを分解して説明してもらえますか?
返信ありがとうございます!