我想在java中编写一些函子,monads和applicatives。我找到了一些,并选择了下面的一个。这个应用函数定义中的get()和unit()是什么?
在术语类别理论中,什么是get()返回?
单位()似乎是某种身份,但从什么到什么?或者也许这是一个构造函数?
我看到了one有一个get()函子的定义。这将返回什么?
abstract class Functor6<F,T> {
protected abstract <U> Function<? extends Functor6<F,T>,? extends Functor6<?,U>> fmap(Function<T,U> f);
}
abstract class Applicative<F,T>extends Functor6<F,T> {
public abstract <U> U get(); // what is this in terms of category theory?
protected abstract <U> Applicative<?,U> unit(U value); // what is this in terms of category theory?
protected final <U> Function<Applicative<F,T>,Applicative<?,U>> apply(final Applicative<Function<T,U>,U> ff) {
return new Function<Applicative<F,T>,Applicative<?,U>>() {
public Applicative<?,U> apply(Applicative<F,T> ft) {
Function<T,U> f=ff.get();
T t=ft.get();
return unit(f.apply(t));
}
};
}
}