問題タブ [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.
java - たぶん、scalaの良いパターンですか?
しばらくの間、私はscalaをnullを返す可能性のあるJavaメソッドと統合するのに苦労してきました。私は大いに役立つ次のユーティリティを思いついた:
このソリューションについていくつか質問があります。
- 使用するより良いまたはより標準的なパターンはありますか?
- すでに存在するものを複製していますか?
- この機能には隠れた落とし穴がありますか?
haskell - モナドを返す Haskell マップ
Data.Map および Data.IntMap のルックアップ関数は現在、型シグネチャを使用して Maybe でラップされた値を返します。
以前は、より一般的なタイプの
前者は余分な型指定の必要性を減らす可能性が高いと思いますが、後者はより一般的になり、リスト内包表記でルックアップを使用できるようになります。新しいバージョンでこの動作を模倣する方法はありますか、または古いバージョンのライブラリを使用する必要がありますか?
haskell - Haskell-MaybeMonad を F# に実装する - どうすればこれを遅延させることができるでしょうか?
F#でhttp://www.haskell.org/all_about_monads/html/maybemonad.htmlから Haskell-MaybeMonad サンプルをビルドしようとしています。
アイデアは、2 つの辞書でメールアドレスを検索することです。両方のルックアップのいずれかが結果を返す場合、3 番目のルックアップを調べます。
問題は、最初のルックアップが結果を返したとしても、2 番目のルックアップを実行することです。Haskell の良いところは、lazy と評価されることです。次に、F# で同様のものを探します。次のことを試しましたが、見栄えが悪く、ビルダーで多分ロジックをカプセル化するという考えが壊れているようです。
より良い解決策はありますか?
よろしく、フォーキ
types - Haskell - Just or no を使う
そのようなコードは、本「Real World Haskell」の p68 で見つけました。
私の質問は次のとおりです。データ コンストラクターはどのような仕事をしましたJust
か? 削除すると、次のようなエラーメッセージが表示されます
しかし、「Just」バージョンと「No Just」バージョンのタイプの違いを比較しようとすると、次のようになります。
では、ここでのキーポイントは何ですか?ノードにvar with type を配置するとa
、関数は type のノードを出力しないa
ため、エラーが発生するということですか?
haskell - "Just" を含む Maybe からの戻り値の操作
戻り値の型を持つ関数がありますMaybe ([(Int,Int)],(Int,Int))
これを別の関数から呼び出して、データに対して操作を実行したいと思います。
ただし、戻り値は 内に含まれていますJust
。2 番目の方法は([(Int,Int)],(Int,Int))
を使用するため、受け入れられませんJust ([(Int,Int)],(Int,Int))
。
Just
2番目の方法を適用する前にトリミングできる方法はありますか?
Just
withinの使用を完全には理解していませんMaybe
が、最初の Method の戻り値の型は でなければならないと言われましたMaybe
。
haskell - Haskellで多分タイプを使用する
HaskellでMaybeタイプを利用しようとしています。多分を返すキー、値タプルのルックアップがあります。多分によってラップされたデータにアクセスするにはどうすればよいですか?たとえば、Maybeに含まれている整数を別の整数で追加したいとします。
java - HaskellのundefinedとJavaのnullの違いは何ですか?
どちらも、タイプがすべてのタイプの共通部分(無人)である用語です。どちらも、評価を試みるまで失敗することなくコードで渡すことができます。私が見ることができる唯一の違いは、Javaには、null
参照の同等性の比較(==
)である、正確に1つの操作を評価できる抜け穴があることです。一方、Haskellではundefined
、例外をスローせずに評価することはできません。これが唯一の違いですか?
編集
私がこの質問で本当に得ようとしているのは、なぜnull
Javaにそのような明らかに悪い決定を含めたのか、そしてHaskellはそれをどのように回避するのかということです。本当の問題は、で何か便利なことができるということだと思います。つまり、 nullnull
がないかどうかをチェックできます。これを行うことが許可されているため、コードでnull値を渡し、「このプログラムに論理エラーがあります」ではなく「結果なし」を示すようにすることが標準的な規則になっています。一方、Haskellでは、用語を評価せずに用語が最下位に評価されるかどうかを確認する方法はなく、プログラムが爆発するため、「結果なし」を示すような方法で使用することはできません。代わりに、のようなものを使用することを余儀なくされます。Maybe
「評価する」という言葉を使って速くて緩いプレーをしているように思われる場合は申し訳ありません...ここでアナロジーを表現しようとしていますが、正確に表現するのに苦労しています。これは、類推が不正確であることを示していると思います。
return-value - たぶんHaskellの価値を得る方法
私はHaskellに比較的慣れておらず、「RealWorldHaskell」を読み始めました。
たぶんタイプに出くわし、Just 1
たとえばから実際の値を受け取る方法について質問があります。
私は次のコードを書きました:
これは、次を使用すると正常に機能します。
しかし、たとえば1をStringに変更すると、機能しません。
私は理由を知っていると思います:なぜならeliminate
、1つのタイプ、この場合は。を返す必要があるからInt
です。eliminate
しかし、少なくとも文字列(またはおそらくすべての種類のタイプ)を処理するように変更するにはどうすればよいですか?
haskell - Haskell:catMaybe for Data.Set?
Data.SetにcatMaybesをどのように実装しますか?
私は思いついた:
それから私は次を得る
functional-programming - Clojure で Maybe/Option の使用がそれほど普及していないのはなぜですか?
Clojure が関数型パラダイムを強調しているにもかかわらず、なぜMaybe
/Option
モナドを使用してオプションの値を表現しないのでしょうか? の使用はOption
、私が定期的に使用する関数型プログラミング言語である Scala で非常に普及しています。