Как в Scala совместить программирование, управляемое событиями, с функциональным подходом?

Чтобы прояснить, что я имею в виду под термином «управляемый событиями», я имею в виду ситуацию, когда у меня есть

def onTrade(...)

, который вызывается каждый раз, когда торгуется определенная акция. Предположим, я хочу отслеживать максимальную дневную цену сделки. Для меня очевидное решение:

var dailyHigh = 0

def onTrade(...) {
    if (price > dailyHigh) dailyHigh = price
}

Есть ли способ достичь этой функциональности, используя val вместо var? Предположим также, что в будущем я могу добавить dailyLow, volumeHigh, volumeLow и т. Д.

9
задан deltanovember 25 July 2011 в 09:55
поделиться