我想在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));
}
};
}
}