私はいくつかのファンクション、モナド、およびアプリケーションをjavaでコーディングしようとしています。私はいくつかを見つけて、以下のものを選んだ。このアプリケーションファンクタの定義では、get()とunit()は何ですか?
カテゴリ理論では、get()は何を返していますか?
ユニット()は何らかのアイデンティティーのように思えますが、何から何に変わりますか?あるいは、これはコンストラクタですか?
私はを見ました。 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));
}
};
}
}