私が理解するように、単項マイナスはハスケルの唯一の単項演算子であり、Num
のnegate
にバインドされていますか?単精度マイナスを別の型クラスのnegate
に再バインドする方法はありますか?単項マイナス(否定)をNumとは別の型クラスに再バインドする方法はありますか?
2
A
答えて
4
お試しthe RebindableSyntax extensionこれは、単項マイナスが範囲内にある「否定」を参照することを許可します。 docs sayとおり
- 否定(例えばする「 - (F X)」)、「ネゲート(F Xの)」とは、両方の数値パターン、および式で。
コンパイラは、ハードコードされ、この規則を持っていますが、限り、暗黙のうちにNoImplicitPrelude
をオンにRebindableSyntax
にあなた
- 電源を入れ、別段説得することができます。
- Preludeをインポートするときにデフォルトの
negate
を非表示にします。そして - 範囲内に独自の
negate
を定義します。
+0
私は否定とは別にたくさんのことを定義しなければならないようです。 ifThenElse(パターンマッチングを使用)とfromStringのインポートも定義する必要がありましたが、今は動作します。ありがとう。 ...そして、実際にifThenElseというグローバルスタンダードを使用するのではなく、私のDSLのtypeclass定義の一部とすることができたのです。それはかなりきれいです。 –
+1
再バインド可能な構文は驚くほど良いアイデアです! – hao
関連する問題
- 1. 単一クラスにはクラス再定義エラーがあります
- 2. 単体テストと別のクラスとの間でクラス変数を共有する方法はありますか?
- 3. あるxamlオブジェクトのプロパティを別のものにバインドする簡単な方法はありますか?
- 4. ListBoxをオブジェクトのList型のプロパティにバインドする方法はありますか
- 5. Javaでユーザー定義型(クラス)のサイズを知る方法はありますか?
- 6. アンバインド後にクリックイベントをアンカーに再バインドする方法はありますか?
- 7. WPFの親行に簡単にバインドする方法はありますか?
- 8. `num num [7]`を指定すると、 `num`、`&num [0] `、`&num`はどのように違いますか?
- 9. Swingインターフェイスをデータソースにバインドする簡単な方法はありますか?
- 10. チャネルに特定の単語を含むメッセージを拒否する方法はありますか?
- 11. GUIDと単なる乱数を区別する方法はありますか?
- 12. VueJS - vuejsのonclickメソッドでanimate.cssクラスをバインドする方法はありますか
- 13. submitbuttonに何かをバインドする方法はありますか?
- 14. ドッカーのコンテナに特定のインターフェイスをバインドする方法はありますか?
- 15. C++での単項否定
- 16. InnerClass型のArrayListのオブジェクトのインスタンスに別のクラスからアクセスする方法はありますか?
- 17. serversocketを特定のIPにバインドする方法はありますか?
- 18. Tomcatとは別のセッションストアを指定する方法はありますか?
- 19. クラスが別のクラスのコードを生成する関係を指定する方法はありますか? UML
- 20. Angular 2の特定のクラスを持つ要素にイベントをバインドする方法はありますか?
- 21. あるクラスから別のクラスに値を返す方法は?
- 22. Objective-C++をXamarinにバインドする方法はありますか?
- 23. データベースフィールドをドロップダウンにバインドする方法はありますか?
- 24. イベントをSquarespace AjaxLoaderにバインドする方法はありますか?
- 25. ダートオーバーライド単項マイナス演算子
- 26. ViewModel内にある複合型内のコレクションにリストボックスをバインドする方法はありますか?
- 27. 再帰的にnumを(num/10)で割ります。
- 28. 他のクラスで列挙型を再利用する方法はありますか?
- 29. あるクラスから別のクラスに変数を渡す方法はありますか?
- 30. ユーザー定義のデータ型オブジェクトをDetailsViewにバインドする方法は?
プレリュード( '-XNoImplicitPrelude')を避けて、必要に応じて定義することができます。問題は、ほとんどのライブラリが暗黙のうちに前奏曲に依存しているために非常に孤独になるということです。 – hao
私はインポート中にネゲートを隠すだけでうまくいきませんでした。 –
ああ待って、忘れてしまった。私を無視! – hao