
上QQ阅读APP看书,第一时间看更新
FRP – the merge() function Marble diagram
Suppose we have a code like this to merge two data streams of the same type:
scala> val list1 = List(1,24) list1: List[Int] = List(1, 24) scala> val list1 = List(1,2,4) list1: List[Int] = List(1, 2, 4) scala> val list2 = List(3,5) list2: List[Int] = List(3, 5) scala> list1 ++ list2 res0: List[Int] = List(1, 2, 4, 3, 5)
Alternatively, we have a user-defined function, merge(), as shown here:
scala> def merge[A](list1:List[A], list2:List[A]): List[A] = list1 ++ list2 merge: [A](list1: List[A], list2: List[A])List[A] scala> merge(list1,list2) res1: List[Int] = List(1, 2, 4, 3, 5)
If we want to represent this merge() function's Marble diagram, we can do so as follows:

Here, Input Data Stream1 is list1 and Input Data Stream2 is list2. When we make a call to the merge() function with them, we will get the resulting (or output) data stream.