以下类型的定义可能的实际用例是什么
type Set = Int => Boolean
def union(s: Set, t: Set): Set = { x => (contains(s, x) || contains(t, x)) }
联合体上方的是一个lambda函数。
答案 0 :(得分:3)
- lambda作为函数体的实际用例是什么时候
醇>
- 我们如何调用union函数,
醇>
Set
是一个接受Int并返回布尔值的函数。 Union需要两个Set,并返回第三个Set。所以我们首先需要两个Set实例(两个函数)。
scala> type Set = Int => Boolean
defined type alias Set
scala> def contains(s: Set, x: Int): Boolean = s(x) // I assumed this
contains: (s: Set, x: Int)Boolean
scala> def union(s: Set, t: Set): Set = { x => (contains(s, x) || contains(t, x)) }
union: (s: Set, t: Set)Set
scala> val oneSet: Set = (x: Int) => x == 1
oneSet: Set = <function1>
scala> val twoSet: Set = (x: Int) => x == 2
twoSet: Set = <function1>
scala> val oneUnionTwo: Set = union(oneSet, twoSet)
oneUnionTwo: Set = <function1>
现在我们有了第三个Set,它是oneSet
和twoSet
x Int将如何作为参数传递
因为oneUnionTwo
基本上是一个接受Int的函数。 x
是此函数/ Set的唯一参数。您可以通过调用Set oneUnionTwo
scala> oneUnionTwo(1)
res0: Boolean = true
scala> oneUnionTwo(2)
res1: Boolean = true
scala> oneUnionTwo(3)
res2: Boolean = false