Jedenáctý domácí úkol

Nastudujte si jak se používá typ Optional - typ, který může sloužit jako náhrada nulového ukazatele. Poté naimplementujte generické třídy MapFunction a FunctionComposition. První třída “zkonvertuje” mapování zadané v konstruktoru na parciální funkci (parciální funkce je funkce, která nemusí ke každému vstupu vrátit výstup), druhá složí dvě funkce a vyrobí z nich třetí.

Odevzdávaný kód (třídy MapFunction a FunctionComposition) uložte do svého repozitáře do souboru hw/Assignment11.java. Termín odevzdání je 25. 5. ve 24:00.

import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
 
class MapFunction<Input, Output> implements Function<Input, Optional<Output>> {
    final ImmutableMap<Input, Output> map;
 
    public MapFunction(ImmutableMap<Input, Output> map) {
        this.map = map;
    }
 
    @Override
    public Optional<Output> apply(Input i) {
        // vas kod
    }
}
 
class FunctionComposition<A, B, C> implements Function<A, Optional<C>> {
    final Function<A, Optional<B>> firstFunction;
    final Function<B, Optional<C>> secondFunction;
 
    public FunctionComposition(Function<A, Optional<B>> firstFunction, Function<B, Optional<C>> secondFunction) {
        this.firstFunction = firstFunction;
        this.secondFunction = secondFunction;
    }
 
    @Override
    public Optional<C> apply(A a) {
        // vas kod
    }
}

~~DISCUSSION:ON~~

courses/b6b36omo/en/hw/11/start.txt · Last modified: 2018/10/03 11:13 (external edit)