com.fpinjava.common.List类的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(7.0k)|赞(0)|评价(0)|浏览(124)

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

List介绍

暂无

代码示例

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

private static List<Solution> results(List<Integer> ns) {
 return ns.isEmpty()
   ? List.list()
   : ns.length() == 1
     ? ns.flatMap(n -> n > 0 ? List.list(new Solution(Expr.expr(n), n)) : List.list())
     : split(ns).flatMap(t1 -> results(t1._1).flatMap(lx -> results(t1._2).flatMap(ry -> combine(lx, ry))));
}

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

public static Tuple<List<Integer>, RNG> integers2(RNG rng, int length) {
 List<Tuple<Integer, RNG>> result = List.range(0, length).foldLeft(List.list(), lst -> i -> lst.cons(integer(rng)));
 List<Integer> list = result.map(x -> x._1).reverse();
 Result<Tuple<List<Integer>, RNG>> result2 = result.headOption().map(tr -> new Tuple<>(list, tr._2));
 return result2.getOrElse(new Tuple<>(List.list(), rng));
}

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

private List<List<A>> divide(List<List<A>> list, int depth) {
 return list.head().length() < depth || depth < 2
   ? list
   : divide(list.flatMap(x -> x.splitListAt(x.length() / 2)), depth / 2);
}

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

public static <T> List<T> fromCollection(Collection<T> ct) {
 List<T> lt = list();
 for (T t : ct) {
  lt = lt.cons(t);
 }
 return lt.reverse();
}

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

public Tuple<List<A>, List<A>> splitAt(int index) {
 return index < 0
   ? splitAt(0)
   : index > length()
     ? splitAt(length())
     : splitAt(list(), this.reverse(), this.length() - index).eval();
}

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

@Test
 public void testAdd2() throws Exception {
  List<Integer> list = List.list(7, 3, 1, 6, 4, 6, 2);
  Heap<Integer> queue = list.foldLeft(Heap.<Integer>empty(), h -> h::add);
  List.list(1, 2, 3, 4, 6, 6, 7).zipWithPositionResult().forEachOrThrow(testList -> List.sequence(testList.map(t -> queue.get(t._2).map(v -> v.equals(t._1)))).map(lst -> lst.forAll(x -> x)).forEachOrThrow(Assert::assertTrue));
 }
}

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

@Test
public void testFold() {
 int limit = 50;
 List<Integer> list = List.range(1, limit + 1);
 List<String> expected = list.reverse().map(NumbersToEnglish.convertUS);
 Map<Integer, String> map = list.foldLeft(Map.<Integer, String>empty(), m -> i -> m.add(i, NumbersToEnglish.convertUS.apply(i)));
 Result<List<String>> rl = List.sequence(map.foldLeft(List.<Result<String>>list(), lst -> me -> lst.cons(me.value), l1 -> l2 -> List.concat(l1, l2)));
 assertTrue(rl.map(expected::equals).getOrElse(false));
}

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

@Test
public void testListFoldLeft() {
 List<Integer> list1 = List.unfold(0, i -> i < 20
   ? Result.success(new Tuple<>(i, i + 1))
   : Result.empty());
 List<Integer> list2 = list1.foldLeft(List.list(), l -> i -> l.reverse().cons(i).reverse());
 assertEquals(list1, list2);
}

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

@Test
public void testSequence() {
 Function<String, Option<Integer>> parse16 = Option.hlift(parseWithRadix.apply(16));
 List<String> list = List.list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
 assertEquals("Some([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, NIL])", Option.sequence(list.map(parse16)).toString());
}

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

@Test
 public void testAdd2() throws Exception {
  List<Integer> list = List.list(7, 3, 1, 6, 4, 6, 2);
  Heap<Integer> queue = list.foldLeft(Heap.<Integer>empty(), h -> h::add);
  queue.head().map(a -> a == 1).forEachOrThrow(Assert::assertTrue);
 }
}

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

@Test
public void testListFoldRight() {
 List<Integer> list1 = List.unfold(0, i -> i < 20
   ? Result.success(new Tuple<>(i, i + 1))
   : Result.empty());
 List<Integer> list2 = list1.foldRight(List.list(), i -> l -> l.cons(i));
 assertEquals(list1, list2);
}

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

private static boolean arePathsEqual(Tree<?> tree) {
 List<List<Tree.Color>> keepBlacks = tree.pathColors().map(list -> list.filter(Tree.Color::isB));
 int blackLength = keepBlacks.headOption().map(List::length).getOrElse(0);
 return keepBlacks.forAll(lst -> lst.length() == blackLength);
}

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

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

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

public static <E, A, B> Either<E, List<B>> traverseRecursive(List<A> as, Function<A, Either<E, B>> f) {
 return as.isEmpty()
   ? Either.right(List.list())
   : f.apply(as.head()).map2(traverseRecursive(as.tail(), f), x -> y -> y.cons(x));
}

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

@Test
public void testInsertRandom10() {
 List<Integer> list = List.list(2, 5, 2, 7, 3, 1, 6, 1, 4, 1);
 Heap<Integer> heap = list.foldLeft(Heap.<Integer>empty(), h -> h::insert);
 assertEquals(list.length(), heap.length());
 assertTrue(isBalanced(heap));
 assertTrue(isValueOrdered(heap));
}

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

@Test
public void testInsertOrderedAscending7() {
 int limit = 7;
 List<Integer> list = List.range(1, limit + 1);
 Map<Number, String> map = list.foldLeft(Map.<Number, String>empty(), m -> i -> m.add(number(i), NumbersToEnglish.convertUS.apply(i)));
 assertTrue(list.forAll(i -> map.contains(number(i))));
 assertTrue(List.sequence(list.map(i -> map.get(number(i)).map(x -> x._2).map(y -> y.equals(NumbersToEnglish.convertUS.apply(i))))).map(z -> z.forAll(w -> w)).getOrElse(false));
}

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

@Test
 public void testFoldRight() {
  List<Integer> list0 = List.list(4, 2, 1, 3, 6, 5, 7);
  List<Integer> list1 = Tree.tree(list0).foldRight(List.list(), a -> list -> list.cons(a), x -> y -> x.concat(y));
  assertEquals(list0.toString(), list1.toString());
 }
}

相关文章