в ТФ нотации. От этого 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?
Обсуждают сегодня