問題タブ [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 - Maybe Bool 値の扱い
たとえば、2 つのMaybe Bool
値があり、次の機能を実現したいとします。
- 両方が
Just
値の場合、それらの間で値を実行したいと思い||
ます。 - そのうちの 1 つが値で
Nothing
、もう 1 つがJust
値である場合Just
、出力として値が必要です。 - 両方が の場合、出力として
Nothing
必要です。Just False
これは、パターン マッチングを使用して実現できることを知っています。しかし、結果を達成するためにモナド関数を使用することは可能ですか?
liftM2
この場合に機能します:
しかし、1つの入力のいずれかが(他の値が必要な場合)の場合liftM2
に生成されます。すなわち:Nothing
Nothing
Just
しかし、私Just False
は上記の場合に欲しいです。
モナド関数を使用してこれを行うことは可能ですか?
haskell - 「デフォルト値の適用」の抽象形式
「失敗しやすい」データ型から簡単に値を取得したり、失敗した場合にデフォルトを使用したりしたいと考えています。
これが私の実装ですMaybe
:
pred
in にマップされているTrue
場合は を返します。name
x
myMap
しかし、Haskell ではよくあることですが、私が気付いていない、より抽象的な方法があります。誰?
haskell - Haskell モナドと同等
のデータ型としてを選択しmonadPlusSDif
た場合、両方の関数は同等ですか?Maybe
MonadPlus
haskell - Just and dot in winghci
Why does this work...
...but not this?
I tried resolving truncate to a simple Double -> Int:
...but that doesn't appear to be the problem...
Many thanks!
haskell - 2 つの「多分」モナド内で値を乗算しますか?
私は現在、Haskell を学ぼうとしているところですが、Maybe
モナドに関する奇妙な問題に遭遇しました。
実験として、私は現在、文字列を取得し、各文字を任意の数値に変換し、それらを乗算/結合しようとしています。これが私がこれまでに持っているものです:
これを実行しようとすると、次のエラーが返されます。
なぜこのエラーが発生するのか、またはそれが正確に何を意味するのかは 100% わかりませんが、2 つのMaybe
モナドを乗算しようとしている可能性があると思われtest
ます。そしてうまく動作します:
また、型宣言を以下に変更してみましたが、それもうまくいきませんでした。
このエラーを修正する方法がよくわかりません。私はHaskellにかなり慣れていないので、本当に単純なものが欠けているか、すべてが完全に間違って構成されている可能性がありますが、これは私を困惑させています. 私は何を間違っていますか?
haskell - Haskell の部分関数のグラフ: a -> Maybe b -> [a] -> [(a, b)]
部分関数f
と引数のリストが与えられた場合、が定義されているxs
ペアのリストを探しています。これは当然のことのように思えますが、これまでエレガントに表現できていませんでした。Maybe/Monad/Applicative/... エリアに役立つものがあるのだろうか? 以下は機能しますが、少し明示的なようです。(x, f(x))
f
liftMaybe
別の名前で存在しますか?これらのいくつかの次の再定式化を見つけました。
haskell - 範囲外: readMaybe、どのライブラリをインポートすればよいですか?
Text.Read ライブラリにある関数 readMaybe を使用しようとしていますが、コンパイルすると次のメッセージが表示されます。
誰が私が間違っているのか教えてもらえますか? ありがとう ;)
haskell - フラットニング・メイズ
私はしばしば、「たぶん何もない someFunc」パターンを持つコードを持っています:
ここparseUSDate
に type がありText -> Maybe Date
ます。
Aeson 解析は明らかに を返しますMaybe Text
。
だから私はここの2つの層を持ち上げる必要があるように私には見えMaybe
ます. maybe Nothing someFunc
そして、パターン以外の方法でそれを行う方法がわかりません。
ここで使用できる明らかな「平坦化」またはその他の機能が不足していますか?
編集:アレクセイの答えをありがとう。
これはまさに私が探していたものです。最終結果は次のとおりです。