в ТФ нотации. От этого KVStore нужно уметь get/put. Но и также если значение там не представлено, то положить некоторое дефолтное (очень долго вычисляется). Т.е. я сделал следующие алгебры:
trait DecodeDefault[F[_], K, V]{
def decodeDefault(k: K): F[V]
}
и
trait KVStore[F[_], K, V]{
//get, put
def computeIfAbsent(k: K)(absent: F[V]): F[V]
}
Проблема в том, что выглядит это как-то по оопэшному... Подскажите, как ещё можно было бы это сделать?
чем тебе мапа не угодила?
а зачем DecodeDefault?
Обсуждают сегодня