は、誰もがリストにandThenを使用する方法の例を持っていますか?私はandThenがリストのために定義されていますが、ドキュメンテーションがそれを使用する方法を示すための例を持っていないことに気づきます。はandThenリストScalaで
私の理解では、andThenのG Fそれは、関数fを実行して、関数gを実行する意味です。関数gの入力は関数fの出力である。これは正しいです?
質問1 - 私は次のコードを書いていますが、私はなぜマップを使用して同じ結果を得ることができるのかわかりません。
scala> val l = List(1,2,3,4,5)
l: List[Int] = List(1, 2, 3, 4, 5)
//simple function that increments value of element of list
scala> def f(l:List[Int]):List[Int] = {l.map(x=>x-1)}
f: (l: List[Int])List[Int]
//function which decrements value of elements of list
scala> def g(l:List[Int]):List[Int] = {l.map(x=>x+1)}
g: (l: List[Int])List[Int]
scala> val p = f _ andThen g _
p: List[Int] => List[Int] = <function1>
//printing original list
scala> l
res75: List[Int] = List(1, 2, 3, 4, 5)
//p works as expected.
scala> p(l)
res74: List[Int] = List(1, 2, 3, 4, 5)
//but I can achieve the same with two maps. What is the point of andThen?
scala> l.map(x=>x+1).map(x=>x-1)
res76: List[Int] = List(1, 2, 3, 4, 5)
誰かがなど、andThenはフィルターのような方法よりも有用である実用的な例を共有してマップすることができ、私は上記を参照してください可能性が1つの用途はandThenで、私は組み合わせで新しい関数、pは、作成することができるということです他の機能のしかし、この使い方は、ListとandThenの有用性を引き出します。