com.fpinjava.common.Tuple.<init>()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(6.9k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中com.fpinjava.common.Tuple.<init>()方法的一些代码示例,展示了Tuple.<init>()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Tuple.<init>()方法的具体详情如下:
包路径:com.fpinjava.common.Tuple
类名称:Tuple
方法名:<init>

Tuple.<init>介绍

暂无

代码示例

代码示例来源:origin: fpinjava/fpinjava

public Stream<A> takeViaUnfold(int n) {
 return unfold(new Tuple<>(this, n), x -> x._1.isEmpty()
   ? Result.empty()
   : x._2 > 0
     ? Result.success(new Tuple<>(x._1.head()._1, new Tuple<>(x._1.tail(), x._2 - 1)))
     : Result.empty());
}

代码示例来源: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);
}

代码示例来源:origin: fpinjava/fpinjava

@Override
public Tuple<Result<A>, Stream<A>> headOption() {
 Tuple<A, Stream<A>> t = head();
 return new Tuple<>(Result.success(t._1), t._2);
}

代码示例来源:origin: fpinjava/fpinjava

public static Tuple<List<Integer>, RNG> integers(RNG rng, int length) {
 Tuple<List<Tuple<Integer, RNG>>, RNG> result = List.range(0, length).foldLeft(new Tuple<>(List.list(), rng), tuple -> i -> {
  Tuple<Integer, RNG> t = integer(tuple._2);
  return new Tuple<>(tuple._1.cons(t), t._2);
 });
 List<Integer> list = result._1.map(x -> x._1);
 return new Tuple<>(list, result._2);
}

代码示例来源:origin: fpinjava/fpinjava

static <A, B> Random<B> map(Random<A> s, Function<A, B> f) {
 return rng -> {
  Tuple<A, RNG> t = s.apply(rng);
  return new Tuple<>(f.apply(t._1), t._2);
 };
}

代码示例来源:origin: fpinjava/fpinjava

@Override
public Tuple<A, Stream<A>> head() {
 A a = h.getOrElse(head.get());
 return h.isEmpty()
   ? new Tuple<>(a, new Cons<>(a, tail))
   : new Tuple<>(a, this);
}

代码示例来源:origin: fpinjava/fpinjava

@Override
public Tuple<A, Stream<A>> head() {
 A a = h.getOrElse(head.get());
 return h.isEmpty()
   ? new Tuple<>(a, new Cons<>(a, tail))
   : new Tuple<>(a, this);
}

代码示例来源:origin: fpinjava/fpinjava

private List<Tuple<List<A>, List<A>>> split_(List<A> list) {
  List<Tuple<List<A>, List<A>>> yss = list.tail().split();
  return yss.map(t -> new Tuple<>(t._1.cons(head), t._2)).cons(new Tuple<>(list(head), tail));
 }
}

代码示例来源: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 <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

static <A, B, C> Random<C> map2(Random<A> ra, Random<B> rb, Function<A, Function<B, C>> f) {
 return rng -> {
  Tuple<A, RNG> t1 = ra.apply(rng);
  Tuple<B, RNG> t2 = rb.apply(t1._2);
  return new Tuple<>(f.apply(t1._1).apply(t2._1), t2._2);
 };
}

代码示例来源: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

public static Result<Tuple<Person, Input>> person(Input input) {
  return input.readInt("Enter ID:")
    .flatMap(id -> id._2.readString("Enter first name:")
      .flatMap(firstName -> firstName._2.readString("Enter last name:")
        .map(lastName -> new Tuple<>(Person.apply(id._1,
          firstName._1, lastName._1), lastName._2))));
 }
}

代码示例来源:origin: fpinjava/fpinjava

private TailCall<Tuple<List<A>, List<A>>> splitAt(List<A> acc, List<A> list, int i) {
 return i == 0 || list.isEmpty()
   ? ret(new Tuple<>(list.reverse(), acc))
   : sus(() -> splitAt(acc.cons(list.head()), list.tail(), i - 1));
}

代码示例来源:origin: fpinjava/fpinjava

private TailCall<Tuple<List<A>, List<A>>> splitAt(List<A> acc, List<A> list, int i) {
 return i == 0 || list.isEmpty()
   ? ret(new Tuple<>(list.reverse(), acc))
   : sus(() -> splitAt(acc.cons(list.head()), list.tail(), i - 1));
}

代码示例来源:origin: fpinjava/fpinjava

public static <A, B, C> Rand<C> map2_(Rand<A> ra, Rand<B> rb, Function<A, Function<B, C>> f) {
 return rng -> {
  Tuple<A, RNG> t1 = ra.apply(rng);
  Tuple<B, RNG> t2 = rb.apply(t1._2);
  return new Tuple<>(f.apply(t1._1).apply(t2._1), t2._2);
 };
}

代码示例来源:origin: fpinjava/fpinjava

public Tuple<List<A>, List<A>> splitAt_(int index) {
 int ii = index < 0 ? 0 : index >= length() ? length() : index;
 Tuple3<List<A>, List<A>, Integer> identity = new Tuple3<>(List.list(), List.list(), ii);
 Tuple3<List<A>, List<A>, Integer> rt = foldLeft(identity, ta -> a -> ta._3 == 0 ? new Tuple3<>(ta._1, ta._2.cons(a), ta._3) : new Tuple3<>(ta._1.cons(a), ta._2, ta._3 - 1));
 return new Tuple<>(rt._1.reverse(), rt._2.reverse());
}

代码示例来源:origin: fpinjava/fpinjava

public Tuple<List<A>, List<A>> splitAt_(int index) {
 int ii = index < 0 ? 0 : index >= length() ? length() : index;
 Tuple3<List<A>, List<A>, Integer> identity = new Tuple3<>(List.list(), List.list(), ii);
 Tuple3<List<A>, List<A>, Integer> rt = foldLeft(identity, ta -> a -> ta._3 == 0 ? new Tuple3<>(ta._1, ta._2.cons(a), ta._3) : new Tuple3<>(ta._1.cons(a), ta._2, ta._3 - 1));
 return new Tuple<>(rt._1.reverse(), rt._2.reverse());
}

代码示例来源:origin: fpinjava/fpinjava

@Test
 public void testUnfoldBigStackSafe() throws Exception {
  List<Integer> list = List.unfold(0, i -> i < 10000 ? Result.success(new Tuple<>(i, i + 1)) : Result.empty());
  assertEquals(10000, list.length());
 }
}

相关文章

微信公众号

最新文章

更多

Tuple类方法