答えて
import scalaz._, Scalaz._
scala> (1, 2.5) |+| (3, 4.4)
res0: (Int, Double) = (4,6.9)
範囲で暗黙Semigroup[A]
持つ任意のクラスA
ためのオペレータ|+|
があります。 Int
|+|
の場合は、デフォルトで+
です(コード内で再定義できます)。
A
とB
に暗黙のうちにSemigroup
がある場合、すべてのタプルに暗黙的なSemigroup[(A, B)]
があります。
Scalaz cheat sheetを参照してください。
:-) Scalaz答えを
1あなたはそれの非常に単純なバージョンをしたい場合は、のような暗黙のクラスを定義することができます。ため
implicit class TuppleAdd(t: (Int, Int)) {
def +(p: (Int, Int)) = (p._1 + t._1, p._2 + t._2)
}
(1, 1) + (2, 2) == (3, 3)
//アップデート1、より一般的なバージョン番号:
0123:だから、これが唯一のInt
のために定義された最もシンプルなバージョンです、私たちは、ScalaのNumeric
を使用して、すべての数値のためにそれをgenerifyことができ
implicit class Tupple2Add[A : Numeric, B : Numeric](t: (A, B)) {
import Numeric.Implicits._
def + (p: (A, B)) = (p._1 + t._1, p._2 + t._2)
}
(2.0, 1) + (1.0, 2) == (3.0, 3)
質問には「Int」だけではありません。あなたは 'math.Numeric'で次のように答えを改善することができます:'暗黙のクラスTuppleAdd [A:数値、B:数値](t:(A、B)){import Numeric.Implicits._; def +(p:(A、B))=(p・1 + t・1、p・2 + t・2)} 'となる。 – senia
それは本当です:-)構造型のバージョンについても考えましたが、おそらくそこには行かないでください;-) –
暗黙のdef tupleIsNumeric [A:数値、B:数値]を実装しようとしました:数値[(A、B)] 'であるが、' + '演算子(' -'と '*')がうまく動作する[issue](http://pastebin.com/fyty7mMy)がある。 – senia
- 1. Pythonのタプルのタプルにタプル要素を追加する
- 2. 単純なXML - 2つの異なるルート要素
- 3. 2つの親要素に要素を追加する
- 4. C#で単純なデータ型にXMLサブ要素を追加する方法
- 5. タプルのリストのリスト、最初の要素によるグループと第2の要素を追加
- 6. java8 mapリストの値に要素を単純に追加する方法
- 7. タプルの2番目の要素をスカラのリストからフィルタリングする方法
- 8. タプルのリストをスカラの単一のタプルに減らす
- 9. 2つの要素を同時にもう1つの要素を要素に追加します
- 10. 2つの配列要素の間の交換値(単純)
- 11. 2つの要素の間に要素を追加する方法
- 12. リスト内のタプルの要素の差を追加する
- 13. 配列に2つの要素を追加する方法は?
- 14. タプルとして座標を返すスカラ
- 15. 単純なフォームコレクション内の2ワード要素の使用
- 16. リストのスカラHashMap:より単純なデフォルト?
- 17. Jackson WRAP_ROOT_VALUEは2つのルート要素を追加します
- 18. なぜArray.push()はDOMの要素を変更しますが、単純な値の追加はしません
- 19. 2つの異なる要素をリストに追加する方法
- 20. 単純なcss要素の配置
- 21. スカラ:どのようにリストにタプルの要素を変換する
- 22. Javaで単純なボタンを追加しても、Javaは私に
- 23. 要素のクリックで2つのリストの要素にCSSスタイルを追加
- 24. N要素を1つの要素(タプル)に入れ、次にすべてのN要素を入れて別の要素(タプル)に入れる
- 25. 要素を要素に追加する
- 26. スカラの既存リストに(Integer、List.Empty)を含むタプルを追加します
- 27. 比較タプルの要素単位のpython
- 28. 純粋なjavascriptでランダムな要素にクラスを追加する方法
- 29. Googleシートのセルデータを単純なHTML要素にインポートする
- 30. スカラ:コレクションを値としてマップに要素を追加する最も良い方法は何ですか?
何を達成しようとしていますか?主にそのようなもののためのタプルを使って(おそらく)悪いスタイルとみなされます。 –
タプルはこのタイプのものではありません。それらは、複数の値を返すメソッドの便利なラッパーです。そのため、コレクションのような便利な機能を持たないのです。 –
私はタプルのリストを減らそうとしていました。私はタプルを使っていくつかのmap reduce型操作を行っています。税関のクラスとオブジェクトは過度のようです。 – Arun