問題タブ [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.

0 投票する
3 に答える
881 参照

haskell - 多分モナド構築

私は現在、Haskell の新しい要素であるモナドに苦労しています。したがって、型が と等しくない場合にのみ (実際の整数値を引数として受け取る) 型(>>=)に対して関数を実行し、それ以外の場合は を返す演算子を作成する例によって、これを紹介しました。MaybeNothingNothing

ただし、これが次の使用法でどのように機能するかはよくわかりません。

(>>=)演算子は単純に 1 つのMaybe値とそれを返す関数を受け取るように思えますが、この例の使用コードでは、値を 2 回、関数を 1 回取っているように見えますMaybexただし、 を評価し、結果を に入れn、次に を評価しy、結果を に入れ、両方で関数をy実行すると言われました。ここでオペレーターがどのようにその役割を果たすsafedivかはわかりませんが。(>>=)これはどのように作動しますか?

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

swift - Swift enum のデフォルトの init が無視される

OptionalSwiftで再実装しようとしています。私はそれを呼んでいMaybeます。空またはnilバージョンとジェネリック型を保持するバージョンを作成するために、2つの初期化があります。

ただし、空の を作成しようとするとMaybeinit()初期化子が呼び出されません。代わりに、もう一方init(_ something: T)は で呼び出されT = ()ます。

どうしたの?パラメータのない初期化が無視されるのはなぜですか?

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

haskell - Haskell: より良い書き方 遠藤かな?

network-api-supportパッケージのおかげで Endo タイプを発見したばかりで、Maybe 値を Endo タイプにスローできるようにする必要があることがわかりました。その結果、maybeEndo という関数を作成しました。使用例を次に示します。

私を驚かせたのは、これはすでにある種のパターンにカプセル化されるべきもののように思えるということです。

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

haskell - 値を持たない可能性のあるデータ型のフィールドを指定する正しい方法は何ですか?

次のようにカスタム データ型を指定したいと思います。

では、色を常に指定する必要がない場合はどうでしょうか。これは正しい方法ですか?

これは Haskell で行うべき方法ですか? これの代替案と欠点はありますか?これまでのところ、ものはコンパイルされていますが、私は学習曲線の始まりにあり、フォローアップ機能がこの状況にどのように対処するかを示すことなく、これが使用されている場所を 1 つだけ見つけました。

たとえば、色などを介して値にアクセスしたり、Show 関数を使用すると、多くの「Just Red」などになります。

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

haskell - 予想される型 `Int' を実際の型 `m0 Int' と一致させることができませんでした

私は現在、Haskellの学習に苦労しています。次の関数:

行列を表す double の 2D リストを取得し、最初の列に最大値を持つ行を決定することになっています。たとえば、行列を表現するためにリストを使用したり、転置を使用したりするなど、非効率的な部分があることはわかっていますが、発生している問題には次のコンパイラ エラーが含まれます。

意味はわかりませんm0が、モナドを意味すると思います。したがって、これは、関数がモナドの int を返していることを意味すると思います。この問題とその解決方法を理解するための助けがあれば、非常に高く評価されます。

ありがとう。

0 投票する
3 に答える
232 参照

haskell - 状態モナドでのエラー処理に関する最小限の Haskell の例の構築

Stateモナドを と組み合わせる方法を理解しようとして、脳をねじって結び目を作っていMaybeます。

State数値のリストの合計を求めるためにモナドを使用する具体的な (そして意図的に自明/不必要な) 例から始めましょう:

涼しい。

Nothingリストに number が含まれている場合に を返すように変更しましょう0。つまり、evalState addState' listを返す必要がありますNothing( がlist含まれているため0)。こんな感じかも…と思いました。

...動作しますが、これを行うためのより良い方法があると思います...

StateTandをいじってみましたがMaybeT、それらを機能させることができません。Monad トランスフォーマーの紹介をいくつか見てきましたが、この特定の組み合わせ (State + Maybe) に触れていなかったか、例が複雑すぎて理解できませんでした。

TL;DR:StateT and MaybeT(2 つの例)を使用して、この (確かに些細な) コードを記述する方法を誰かが示すことができれば幸いです。(トランスフォーマーを使わずにこのコードを書くことは不可能だと思います - それは間違っていますか?)

PS私の理解では、StateTおそらくこの例により適していますが、それほど面倒ではないにしても、両方の例を見ることは概念的に役立ちます。

更新: @Brenton Alker が指摘したように、上記のコードの最初のバージョンは単純なタイプミス (アポストロフィがありませんでした) のために機能しません。StateT/の使用に関する質問に焦点を当てるために、MaybeT上記の投稿を修正しています。彼の投稿にコンテキストを与えるために、このメモを含めたかっただけです.

0 投票する
5 に答える
805 参照

haskell - 空のリスト vs 多分 Haskell で失敗した計算を表す

Edx Haskell courseMaybeで、Erik Meijerは、失敗した計算に型を使用することはすべきことではないと繰り返し述べています。代わりに、空のリストを使用する必要があります。

私の理解では、Maybe型は良いものであり、それを使用する必要があります。しかし、リストはモデル化できるものすべてをMaybeモデル化できるようです...では、なぜMaybe型が必要なのでしょうか?

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

haskell - Haskell で特定の型の空のオブジェクトを返す

これが私がやろうとしていることです:

何か案は?

0 投票する
3 に答える
8372 参照

exception - Clojure の慣用的なエラー処理

私が C の帽子をかぶったとき、おそらく慣用的な Clojure は単純なことをして戻り値をチェックするだけだと思います。

Java の帽子をかぶったとき (しぶしぶ追加しなければなりません)、Clojure は JVM 上で実行されるため、JVM 例外を使用するのが自然な方法であるに違いないと思います。

関数型の帽子をかぶったとき、構成可能な方法でエラーを処理できるある種のモナド構造またはスレッド化マクロが必要であると考えています。

では、Clojure プログラムでエラーを処理する慣用的な方法は何でしょうか?

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

scala - エラーモナドを Maybe モナドや Continuation モナドで理解できるでしょうか?

Scala でエラーを処理するための次のコードを見ています。

ここで、Clojureで Maybe Monad を使用して例外を処理するコードを確認できます。

ここで、Jim Duey が継続に関する例外処理について説明しています

(すべてのモナドはある意味で継続であることを認識しています- 今のところそれは脇に置いておきます。重大な間違いを犯した場合は、質問を修正できるように助けてください)。

上記の Scala コードに頭を悩ませようとしています。それがMaybeに基づいているのか、Continuationsに基づいているのかを調べようとしています。

私の質問は:エラーモナドを Maybe モナドまたは Continuation モナドの観点から理解できますか?