|
MultiDimensionalArrayLiterals.java
|
package com.acme.arrays;
import church.lang.Array;
import church.lang.Array.$WriteElementsToStream;
import church.lang.Array.$WriteEmbracedElementsToStream;
import church.lang.ByteStream;
import church.lang.operators.Relational.$$equal;
import church.lang.operators.Streams.$$encode;
import church.primitives.Integers;
import church.primitives.Objects;
import static church.lang.Array.array;
import static church.lang.operators.Streams.output;
@SuppressWarnings("unchecked")
public class MultiDimensionalArrayLiterals {
private static final $$encode<ByteStream, String> $S0 = Objects::$encode;
private static final $$encode<ByteStream, Integer> $S1 = Integers::$encode;
private static final $WriteElementsToStream<ByteStream, Integer> $S2 = Array.writeElementsToStream($S1, $S0);
private static final $WriteEmbracedElementsToStream<ByteStream, Integer, String, String> $S3 = Array.writeEmbracedElementsToStream($S0, $S2, $S0);
private static final $$encode<ByteStream, Integer[]> $S4 = Array.$encode($S3);
private static final $WriteElementsToStream<ByteStream, Integer[]> $S5 = Array.writeElementsToStream($S4, $S0);
private static final $WriteEmbracedElementsToStream<ByteStream, Integer[], String, String> $S6 = Array.writeEmbracedElementsToStream($S0, $S5, $S0);
private static final $$encode<ByteStream, Integer[][]> $S7 = Array.$encode($S6);
private static final $$equal<Integer> $S8 = Integers::$equal;
private static final $$equal<Integer[]> $S9 = Array.$equal($S8);
private static final $$equal<Integer[][]> $S10 = Array.$equal($S9);
public static void main(String[] args) {
Integer[] a1 = array(1, 2);
Integer[] a2 = array(3, 4);
Integer[][] aa1 = array(a1, a2);
Integer[][] aa2 = array(array(1, 2), array(3, 4));
$S0.$encode($S7.$encode(output, aa1), "\n");
assert $S10.$equal(aa1, aa2);
}
}