Skip to content

Instantly share code, notes, and snippets.

View calumleslie's full-sized avatar

Calum Leslie calumleslie

View GitHub Profile
@calumleslie
calumleslie / main.rs
Last active February 26, 2017 16:39
The flatten thing again, in Rust
use std::fmt::Debug;
#[derive(Debug,Clone)]
enum ListOrElement<T>
where T: Debug + Clone {
List(Vec<ListOrElement<T>>),
Element(T)
}
impl <T: Debug + Clone> ListOrElement<T> {
package flatten;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.Function;
public class Either<L, R> {
private final Optional<L> left;
private final Optional<R> right;
package flatten;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Flatten2 {
public static void main(String[] args) {
Object[] input = new Object[] { 1, new Object[] { 2, 3 }, new Object[] { 4, new Object[] { 5, 6 } } };
System.out.println(Arrays.deepToString(input));
package flatten;
import java.util.Arrays;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.stream.IntStream;
public class ArrayOrInt {
package uk.co.zootm.whee
trait Adder[L,R,O] {
def add( l: L, r: R ): O
}
class One
object Adder {
class Addable[L]( val l: L ) {