問題タブ [non-exhaustive-patterns]
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 - GHCI で不適切な非網羅的なパターン マッチの警告を回避する
これを重複として却下する前に
少なくとも 2018 年 9 月の時点では、GHCI では警告をローカルで無効にすることはできません(ただし、ファイル全体で無効にすることはできます)。
しかし、すべてのケースが実際に処理されていることを GHCI に知らせる別の方法があるのではないでしょうか?
質問
私が時々使用するイディオムは、最初の定義がいくつかの述語をテストして Left を返す関数を記述し、他の定義は操作が実際に意味をなす引数を考慮することです。それを行うたびに、「パターン一致は網羅的ではありません」というエラーが表示されますが、実際にはすべての条件をチェックしています。
例
(このおもちゃの例の動機となっている実際のコードについては、たとえばpExprToHExpr
hereの定義を参照してください。)
このコード:
次のエラーが生成されます。
他の条件下では、Instrument
タイプを細分化します。
しかし (この架空の物理学では) のセットは、Drums
が含まれている場合、最高のピッチを持つ可能性があるため、 タイプまたはタイプCowbell
のいずれにも適合しません。Percussive
Pitched
scala - リターン型封印時の全射性チェック
Scala は、封印された型のパターン マッチが網羅的でない場合に警告できますが、戻り値の型が封印されている場合、関数がすべてのケースを返すことを確認できますか? たとえば、次の ADT を検討してください。
次にf: Foo => String
、代数データ型の関数Foo
警告を発する
の次の実装のように、戻り値の型が ADT の場合、同様の非枯渇警告を発生させることは可能ですかf: String => Foo
?
haskell - 関数呼び出しの前に値を追加すると、「関数内の非網羅的なパターン」エラーが発生する
何を扱っていないのかわからない。整数を文字列に変換する関数があるとします。それを呼び出しますconverter
。
ここで、位置整数を文字列に変換するには、 を呼び出すだけconverter
です。負の整数を文字列に変換する-
には、呼び出しに追加しconverter
ます。
これは私のコードです:
コードを実行して試してみると、次のnegOrPosConverter (ActualInt (-200))
エラーが発生します。
理由はありますか?
haskell - 「関数内の網羅的でないパターン」を修正する方法
このリストのすべての要素を 3 で乗算する関数にパラメーターとしてリストを渡したいと思います。再帰 (方法はわかっています) とマップ関数 (問題があります) を使用する必要があります。
他の投稿で見たように、リストをパラメーターとして渡そうとしていますが、機能していません。
私が試したコードは次のとおりです: 例外: x: 関数 mult の非網羅的なパターン