我是新来的Scala和我被困与undestanding怎么下面的代码在二叉搜索树from this link作品:斯卡拉工会操作
def union(that: TweetSet): TweetSet = {
(left union (right union that)).incl(elem)
}
def incl(x: Tweet): TweetSet = {
if (x.text < elem.text) new NonEmpty(elem, left.incl(x), right)
else if (elem.text < x.text) new NonEmpty(elem, left, right.incl(x))
else this
}
事情,我不明白是怎么做联合操作按排序顺序创建新树,以及它如何正确工作,是否会到树的末尾,然后逐个添加元素? 此外,我不明白这种递归将如何终止,在Java方面它应该可能给我们空指针异常