0
的身體什麼是以下類型的定義斯卡拉:lambda作爲功能
type Set = Int => Boolean
def union(s: Set, t: Set): Set = { x => (contains(s, x) || contains(t, x)) }
工會的身體上面可能的實際用例是一個lambda函數。
的身體什麼是以下類型的定義斯卡拉:lambda作爲功能
type Set = Int => Boolean
def union(s: Set, t: Set): Set = { x => (contains(s, x) || contains(t, x)) }
工會的身體上面可能的實際用例是一個lambda函數。
- 當爲lambda作爲該函數的主體的實際用例
- 我們如何調用聯合函數,
Set
是一個函數,它接受一個Int並返回布爾值。 Union需要兩個集合,並返回第三個集合。所以我們首先需要兩個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>
現在我們有了第三套,這是oneSet
工會和twoSet
如何在x詮釋將作爲參數傳遞
由於oneUnionTwo
基本上是一個函數,需要Int。 x
是此函數/ Set的唯一參數。你可以通過調用Set來傳遞它oneUnionTwo
scala> oneUnionTwo(1)
res0: Boolean = true
scala> oneUnionTwo(2)
res1: Boolean = true
scala> oneUnionTwo(3)
res2: Boolean = false
提示:union的返回類型是什麼? – 2014-10-08 10:31:58
我知道Int => Boolean,但是我沒有看到我們什麼時候可以使用這樣的實現。在這種情況下x是什麼 – 2014-10-08 10:35:22
定義一個集合有兩種方法:枚舉所有元素或提供一個函數,告訴你元素是否在集合中(這稱爲集合的特徵函數)。這是使用特徵函數的集合的實現。 – 2014-10-08 10:37:23