問題タブ [either]
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 モナド
Haskell のデータ型に少し問題があります。問題を理解するのに役立つコードを最初に投稿する必要があると思います
この "helper testexpression3 "(+)" のようなヘルパー関数を使用すると、typ "Either InterpreterError Int" で値 "Right 12" が返されますが、"Int" 値 "12" のみが必要です。
関数を試しました->「getValue(Right x)= x」ですが、そのInt値を取得できません。しばらくテストした後、私が使用したモナドに問題があると思います。
ヘルパー関数の型を次のようにテストすると、次のようになります: ":t (helper testexpression1 "(+)")" 次のようになります: "(... :: (Functor a, MonadIO a, MonadMask a) => a (いずれかの InterpreterError Int)"
そのようなものをどのように機能させることができますか: "getValue (helper testexpression1 "(+)")" と書き、"12" :: Int を取得します
コードが意味をなさないことはわかっていますが、それは宿題であり、haskell でいくつかのことを試してみたかったのです。私よりも多くのアイデアがあることを願っています。
私は英語を学び始めましたが、まだ始めたばかりです。すべてのアイデアとすべてに感謝します。
編集、コードに欠けていたものは次のとおりです。
その関数もファイルに含まれています...ファイルにある他のすべては、私が作成したいくつかのテストケースです。
haskell - Haskellプログラムで返されたEitherTを使用する
私が取り組んでいる Haskell プロジェクトで「citation-resolve」パッケージを使用しようとしていますが、実際のコードで EachT を使用するのに苦労しています。それらがモナド変換子であることはわかりました。それが何を意味するのか理解できたと思いますが、実際にそれらを使用する方法を理解できないようです。私がやろうとしていることを表すおもちゃの例は次のとおりです。
ここでresolveEither
は、次のタイプがあります。
runEitherT $ resolveEither "ref"
タイプは次のとおりです。
ただし、これにより次のエラーが発生します。
解決方法や回避方法がわかりません。
特に、実装ではなく使用の観点からモナドトランスフォーマーを扱うチュートリアルへのポインターを歓迎します。
編集:
dfeuer と Christian の回答に対するコメントを反映するために、main を次のように変更してもエラーが発生します。
私が今得るエラーは次のとおりです。
ここでは、コメントよりも優れたコードの書式設定がはるかに簡単であるため、コメントと同様に質問を編集しています。
haskell - モナドまたは ErrorT モナド トランスフォーマーのどちらを使用する必要がありますか?
この質問を読みました。受け入れられた回答の引用は次のとおりです。
このインスタンスはベース 4.3.xx で追加され、ghc 7 に付属しています。一方、
Either
インスタンスを直接使用Either
することも、失敗する可能性のあるものを表すために使用している場合は、ErrorT
モナド トランスフォーマーを使用する必要があります。
私はEither
このようなものに使いたい:
そのため、計算の一部が失敗した場合、その部分Left
が返されます。
実際の質問は、モナドErrorT
の代わりにモナド変換子を使用する必要があるのはなぜEither
ですか? 私は Haskell の初心者であり、モナド トランスフォーマーが少し怖いです。特に、モナド トランスフォーマー内で既にコードを書いている場合はなおさらです。
scala - Scala - いずれかを使用した再帰的なパターン マッチング
現在、次のようなものがあります。
パターンマッチングをよりきれいにするために、ある種の再帰関数を実装する方法があるかどうか疑問に思っていました。次のようになります。
scala - リストを分割する方法[Either[A, B]]
List[Either[A, B]]
aを 2 つのリストに分割したい。
より良い方法はありますか?
haskell - HaskellでfirstRightOrLeftsを書く慣用的な方法は?
私は次の方法を持っています:
私を悩ませているのは醜いパターンマッチングであり、このメソッドを書くためのより慣用的な方法があるかどうか疑問に思っていました. アイデアは、Eithers を返すことができる一連の計算があり、最初の結果またはすべてのエラー メッセージを取得したいということです。間違ったデータ構造を使用している可能性があります。おそらく Writer モナドがこのタスクにより適しているでしょう。現時点ではよくわかりません。どんな助けにも乾杯!
scala - どちらでも動作するScala Future、flatMap
Future[Either[Future[T1], Future[T2]]] 型のオブジェクトを、Either[Future[T1], Future[T2]] 型のオブジェクトに変換する方法は本当にありますか??
どちらかで動作するflatMapのようなものかもしれません....
私はこのコードを機能させようとしています (ラップされた一連のアクションを実装する同様のコードがありますが、将来は関係ありません。はるかに簡単に機能します)。以下のコードはそれに基づいており、先物を含む状況で機能するように必要な変更が加えられています。
更新 更新 更新
以下のディディエからのコメントに基づいて(Scala Future、どちらでも動作するflatMap)...動作するコードは次のとおりです。
ありがとう、ラカ