2
我以下階高階函數工作的工會:斯卡拉:高階函數返回的套
def after(M: Set[Expression], n: String): Set[Set[Expression]] = { M.map((expr: Expression) => aft(expr,n)) }
功能後具有以下特徵:
def aft(m: Expression, n: String): Set[Expression]
類型Expression
是我創建的一個抽象類。
我想要的方法after
採取的Expression
個組M,M中的每個元件上施加aft
然後返回結果的並集(即Set[Expression]
而非Set[Set[Expression]]
)。我認爲在這種情況下應該使用更高階的函數,但我不能真正理解如何去做,因爲我仍然認爲自己是Scala和函數式編程中的新手。
我嘗試過,但因爲我正在使用自己的Expression類,所以無法工作。有沒有辦法實現我自己的平面圖? – wirdis
@wirdis你不需要你自己的'flatMap',你需要在'Expression'上實現'hashCode'和'equals',或者它繼承了'Set'的兒童以正常工作。 –
謝謝,它工作! – wirdis