問題タブ [maybe]
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 の新しい要素であるモナドに苦労しています。したがって、型が と等しくない場合にのみ (実際の整数値を引数として受け取る) 型(>>=)
に対して関数を実行し、それ以外の場合は を返す演算子を作成する例によって、これを紹介しました。Maybe
Nothing
Nothing
ただし、これが次の使用法でどのように機能するかはよくわかりません。
(>>=)
演算子は単純に 1 つのMaybe
値とそれを返す関数を受け取るように思えますが、この例の使用コードでは、値を 2 回、関数を 1 回取っているように見えますMaybe
。x
ただし、 を評価し、結果を に入れn
、次に を評価しy
、結果を に入れ、両方で関数をy
実行すると言われました。ここでオペレーターがどのようにその役割を果たすsafediv
かはわかりませんが。(>>=)
これはどのように作動しますか?
swift - Swift enum のデフォルトの init が無視される
Optional
Swiftで再実装しようとしています。私はそれを呼んでいMaybe
ます。空またはnilバージョンとジェネリック型を保持するバージョンを作成するために、2つの初期化があります。
ただし、空の を作成しようとするとMaybe
、init()
初期化子が呼び出されません。代わりに、もう一方init(_ something: T)
は で呼び出されT = ()
ます。
どうしたの?パラメータのない初期化が無視されるのはなぜですか?
haskell - Haskell: より良い書き方 遠藤かな?
network-api-supportパッケージのおかげで Endo タイプを発見したばかりで、Maybe 値を Endo タイプにスローできるようにする必要があることがわかりました。その結果、maybeEndo という関数を作成しました。使用例を次に示します。
私を驚かせたのは、これはすでにある種のパターンにカプセル化されるべきもののように思えるということです。
haskell - 値を持たない可能性のあるデータ型のフィールドを指定する正しい方法は何ですか?
次のようにカスタム データ型を指定したいと思います。
では、色を常に指定する必要がない場合はどうでしょうか。これは正しい方法ですか?
これは Haskell で行うべき方法ですか? これの代替案と欠点はありますか?これまでのところ、ものはコンパイルされていますが、私は学習曲線の始まりにあり、フォローアップ機能がこの状況にどのように対処するかを示すことなく、これが使用されている場所を 1 つだけ見つけました。
たとえば、色などを介して値にアクセスしたり、Show 関数を使用すると、多くの「Just Red」などになります。
haskell - 予想される型 `Int' を実際の型 `m0 Int' と一致させることができませんでした
私は現在、Haskellの学習に苦労しています。次の関数:
行列を表す double の 2D リストを取得し、最初の列に最大値を持つ行を決定することになっています。たとえば、行列を表現するためにリストを使用したり、転置を使用したりするなど、非効率的な部分があることはわかっていますが、発生している問題には次のコンパイラ エラーが含まれます。
意味はわかりませんm0
が、モナドを意味すると思います。したがって、これは、関数がモナドの int を返していることを意味すると思います。この問題とその解決方法を理解するための助けがあれば、非常に高く評価されます。
ありがとう。
haskell - 状態モナドでのエラー処理に関する最小限の Haskell の例の構築
State
モナドを と組み合わせる方法を理解しようとして、脳をねじって結び目を作っていMaybe
ます。
State
数値のリストの合計を求めるためにモナドを使用する具体的な (そして意図的に自明/不必要な) 例から始めましょう:
涼しい。
Nothing
リストに number が含まれている場合に を返すように変更しましょう0
。つまり、evalState addState' list
を返す必要がありますNothing
( がlist
含まれているため0
)。こんな感じかも…と思いました。
...動作しますが、これを行うためのより良い方法があると思います...
StateT
andをいじってみましたがMaybeT
、それらを機能させることができません。Monad トランスフォーマーの紹介をいくつか見てきましたが、この特定の組み合わせ (State + Maybe) に触れていなかったか、例が複雑すぎて理解できませんでした。
TL;DR:StateT
and MaybeT
(2 つの例)を使用して、この (確かに些細な) コードを記述する方法を誰かが示すことができれば幸いです。(トランスフォーマーを使わずにこのコードを書くことは不可能だと思います - それは間違っていますか?)
PS私の理解では、StateT
おそらくこの例により適していますが、それほど面倒ではないにしても、両方の例を見ることは概念的に役立ちます。
更新: @Brenton Alker が指摘したように、上記のコードの最初のバージョンは単純なタイプミス (アポストロフィがありませんでした) のために機能しません。StateT
/の使用に関する質問に焦点を当てるために、MaybeT
上記の投稿を修正しています。彼の投稿にコンテキストを与えるために、このメモを含めたかっただけです.
haskell - 空のリスト vs 多分 Haskell で失敗した計算を表す
Edx Haskell courseMaybe
で、Erik Meijerは、失敗した計算に型を使用することはすべきことではないと繰り返し述べています。代わりに、空のリストを使用する必要があります。
私の理解では、Maybe
型は良いものであり、それを使用する必要があります。しかし、リストはモデル化できるものすべてをMaybe
モデル化できるようです...では、なぜMaybe
型が必要なのでしょうか?
haskell - Haskell で特定の型の空のオブジェクトを返す
これが私がやろうとしていることです:
何か案は?
exception - Clojure の慣用的なエラー処理
私が C の帽子をかぶったとき、おそらく慣用的な Clojure は単純なことをして戻り値をチェックするだけだと思います。
Java の帽子をかぶったとき (しぶしぶ追加しなければなりません)、Clojure は JVM 上で実行されるため、JVM 例外を使用するのが自然な方法であるに違いないと思います。
関数型の帽子をかぶったとき、構成可能な方法でエラーを処理できるある種のモナド構造またはスレッド化マクロが必要であると考えています。
では、Clojure プログラムでエラーを処理する慣用的な方法は何でしょうか?
scala - エラーモナドを Maybe モナドや Continuation モナドで理解できるでしょうか?
Scala でエラーを処理するための次のコードを見ています。
ここで、Clojureで Maybe Monad を使用して例外を処理するコードを確認できます。
ここで、Jim Duey が継続に関する例外処理について説明しています。
(すべてのモナドはある意味で継続であることを認識しています- 今のところそれは脇に置いておきます。重大な間違いを犯した場合は、質問を修正できるように助けてください)。
上記の Scala コードに頭を悩ませようとしています。それがMaybeに基づいているのか、Continuationsに基づいているのかを調べようとしています。
私の質問は:エラーモナドを Maybe モナドまたは Continuation モナドの観点から理解できますか?