有沒有人有一個如何使用和與列表的例子?我注意到,然後定義List,但文檔沒有示例來說明如何使用它。然後列表斯卡拉
我的理解是f和then g意味着執行函數f然後執行函數g。函數g的輸入是函數f的輸出。它是否正確?
問題1 - 我寫了下面的代碼,但我不明白爲什麼我應該使用,然後因爲我可以用map實現相同的結果。
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是不是像過濾器的方法更有效,地圖等的用途之一,我可以看到上面是有andThen,我可以創造一個新的功能,P,這是一個組合的其他功能。但是這個用法帶來了有用性,然後,而不是列表和然後