本文整理了Java中com.fpinjava.common.Function.apply()
方法的一些代码示例,展示了Function.apply()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Function.apply()
方法的具体详情如下:
包路径:com.fpinjava.common.Function
类名称:Function
方法名:apply
暂无
代码示例来源:origin: fpinjava/fpinjava
private boolean isEquals(Cons<?> o) {
Function<Result<A>, Function<Result<?>, Boolean>> equals = x -> y -> x.flatMap(a -> y.map(a::equals)).getOrElse(() -> false);
return zipAll(o).foldRight(true, x -> y -> equals.apply(x._1).apply(x._2));
}
}
代码示例来源:origin: fpinjava/fpinjava
private <B> TailCall<B> foldLeft(B acc, List<A> list, Function<B, Function<A, B>> f) {
return list.isEmpty()
? ret(acc)
: sus(() -> foldLeft(f.apply(acc).apply(list.head()), list.tail(), f));
}
代码示例来源:origin: fpinjava/fpinjava
private <B> TailCall<Tuple<B, List<A>>> foldLeft(B acc, B zero, List<A> list, Function<B, Function<A, B>> f) {
return list.isEmpty() || acc.equals(zero)
? ret(new Tuple<>(acc, list))
: sus(() -> foldLeft(f.apply(acc).apply(list.head()), zero, list.tail(), f));
}
代码示例来源:origin: fpinjava/fpinjava
private <B> TailCall<Tuple<B, List<A>>> foldLeft(B acc, B zero, List<A> list, Function<B, Function<A, B>> f) {
return list.isEmpty() || acc.equals(zero)
? ret(new Tuple<>(acc, list))
: sus(() -> foldLeft(f.apply(acc).apply(list.head()), zero, list.tail(), f));
}
代码示例来源:origin: fpinjava/fpinjava
private <B> TailCall<B> foldLeft_(B acc, List<A> list, Function<B, Function<A, B>> f) {
return list.isEmpty()
? ret(acc)
: sus(() -> foldLeft_(f.apply(acc).apply(list.head()), list.tail(), f));
}
代码示例来源:origin: fpinjava/fpinjava
/**
* Caution: not stack safe
*/
public static <A, S> List<A> unfold_(S z, Function<S, Result<Tuple<A, S>>> f) {
return f.apply(z).map(x -> unfold_(x._2, f).cons(x._1)).getOrElse(list());
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private static <A, S> TailCall<List<A>> unfold(List<A> acc, S z, Function<S, Result<Tuple<A, S>>> f) {
Result<Tuple<A, S>> r = f.apply(z);
Result<TailCall<List<A>>> result = r.map(rt -> sus(() -> unfold(acc.cons(rt._1), rt._2, f)));
return result.getOrElse(ret(acc));
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<A>> dropWhile_(List<A> list, Function<A, Boolean> f) {
return !list.isEmpty() && f.apply(list.head())
? sus(() -> dropWhile_(list.tail(), f))
: ret(list);
}
代码示例来源:origin: fpinjava/fpinjava
private static <A, S> TailCall<List<A>> unfold(List<A> acc, S z, Function<S, Result<Tuple<A, S>>> f) {
Result<Tuple<A, S>> r = f.apply(z);
Result<TailCall<List<A>>> result = r.map(rt -> sus(() -> unfold(acc.cons(rt._1), rt._2, f)));
return result.getOrElse(ret(acc));
}
代码示例来源:origin: fpinjava/fpinjava
public <A1, A2> Tuple<List<A1>, List<A2>> unzip(Function<A, Tuple<A1, A2>> f) {
return this.foldRight(new Tuple<>(list(), list()), a -> tl -> {
Tuple<A1, A2> t = f.apply(a);
return new Tuple<>(tl._1.cons(t._1), tl._2.cons(t._2));
});
}
代码示例来源:origin: fpinjava/fpinjava
public <B> Map<B, List<A>> groupBy(Function<A, B> f) {
return foldRight(Map.empty(), t -> mt -> {
final B k = f.apply(t);
return mt.put(k, mt.get(k).getOrElse(list()).cons(t));
});
}
代码示例来源:origin: fpinjava/fpinjava
public <B> Map<B, List<A>> groupByImperative(Function<A, B> f) {
List<A> workList = this;
Map<B, List<A>> m = Map.empty();
while (!workList.isEmpty()) {
final B k = f.apply(workList.head());
List<A> rt = m.get(k).getOrElse(list()).cons(workList.head());
m = m.put(k, rt);
workList = workList.tail();
}
return m;
}
代码示例来源:origin: fpinjava/fpinjava
public <B, C> List<C> zipWithAll(List<B> s2, Function<Tuple<Result<A>, Result<B>>, C> f) {
Function<Tuple<List<A>, List<B>>, Result<Tuple<C, Tuple<List<A>, List<B>>>>> g = x -> x._1.isEmpty() && x._2.isEmpty()
? Result.empty()
: x._2.isEmpty()
? Result.success(new Tuple<>(f.apply(new Tuple<>(Result.success(x._1.head()), Result.empty())), new Tuple<>(x._1.tail(), List.<B> list())))
: x._1.isEmpty()
? Result.success(new Tuple<>(f.apply(new Tuple<>(Result.empty(), Result.success(x._2.head()))), new Tuple<>(List.<A> list(), x._2.tail())))
: Result.success(new Tuple<>(f.apply(new Tuple<>(Result.success(x._1.head()), Result.success(x._2.head()))), new Tuple<>(x._1.tail(), x._2.tail())));
return unfold(new Tuple<>(this, s2), g);
}
内容来源于网络,如有侵权,请联系作者删除!