Search in sources :

Example 1 with ISeq

use of clojure.lang.ISeq in project enumerable by hraberg.

the class ClojureTest method varargsExpansion.

@Test
public void varargsExpansion() throws Exception {
    ISeq concat = (concat(list(1), list(2), list(3, 4), list(5)));
    assertEquals(list(1, 2, 3, 4, 5), concat);
    ISeq interleave = (interleave(list(2, 4), list(3, 6), list(4, 8), list(5, 10), list(6, 12)));
    assertEquals(vector(2, 3, 4, 5, 6, 4, 6, 8, 10, 12), interleave);
    ISeq mapcat = (mapcat(fn(n, m, list(n * m)), list(2, 4), list(3, 6)));
    assertEquals(list(6, 24), mapcat);
    ISeq pmap = (pmap(fn(n, m, n * m), list(2, 4), list(3, 6)));
    assertEquals(list(6, 24), pmap);
}
Also used : ISeq(clojure.lang.ISeq) GroovyTest(org.enumerable.lambda.support.groovy.GroovyTest) ScalaTest(org.enumerable.lambda.support.scala.ScalaTest) JRubyTest(org.enumerable.lambda.support.jruby.JRubyTest) Test(org.junit.Test) JavaScriptTest(org.enumerable.lambda.support.javascript.JavaScriptTest)

Example 2 with ISeq

use of clojure.lang.ISeq in project http-kit by http-kit.

the class HeaderMap method encodeHeaders.

public void encodeHeaders(DynamicBytes bytes) {
    final int total = size * 2;
    for (int i = 0; i < total; i += 2) {
        String k = (String) arrays[i];
        Object v = arrays[i + 1];
        // omit invalid headers and prevent possible exceptions (e.g., NullPointerException)
        if (k == null || v == null) {
            continue;
        }
        // ring spec says it could be a seq
        if (v instanceof Seqable) {
            ISeq seq = ((Seqable) v).seq();
            while (seq != null) {
                bytes.append(k);
                bytes.append(COLON, SP);
                bytes.append(seq.first().toString(), HttpUtils.UTF_8);
                bytes.append(CR, LF);
                seq = seq.next();
            }
        } else {
            bytes.append(k);
            bytes.append(COLON, SP);
            // supposed to be ISO-8859-1, but utf-8 is compatible.
            // filename in Content-Disposition can be utf8
            bytes.append(v.toString(), HttpUtils.UTF_8);
            bytes.append(CR, LF);
        }
    }
    bytes.append(CR, LF);
}
Also used : ISeq(clojure.lang.ISeq) Seqable(clojure.lang.Seqable)

Example 3 with ISeq

use of clojure.lang.ISeq in project enumerable by hraberg.

the class ClojureTest method defnLambda.

@Test
public void defnLambda() throws Exception {
    Var square = defn("square", fn(n, n * n));
    assertEquals(4, square.invoke(2));
    Var found = var(CURRENT_NS.get().toString(), "square");
    assertSame(square, found);
    ISeq squares = (map(square, list(2, 4)));
    assertEquals(list(4, 16), squares);
}
Also used : ISeq(clojure.lang.ISeq) Var(clojure.lang.Var) GroovyTest(org.enumerable.lambda.support.groovy.GroovyTest) ScalaTest(org.enumerable.lambda.support.scala.ScalaTest) JRubyTest(org.enumerable.lambda.support.jruby.JRubyTest) Test(org.junit.Test) JavaScriptTest(org.enumerable.lambda.support.javascript.JavaScriptTest)

Example 4 with ISeq

use of clojure.lang.ISeq in project enumerable by hraberg.

the class ClojureTest method interactingWithClojureEngine.

@Test
public void interactingWithClojureEngine() throws Exception {
    eval("(def v [1 2 3 4 5])");
    defn("times", fn(n, m, n * m));
    Integer factorial = 120;
    assertEquals(factorial, clj.eval("(reduce times 1 v)"));
    ISeq odd = list(1L, 3L, 5L);
    assertEquals(odd, clj.eval("(filter odd? v)"));
    defn("is-even?", toIFn(Lambda.λ(n, n % 2 == 0)));
    ISeq even = list(2L, 4L);
    assertEquals(even, clj.eval("(filter is-even? v)"));
}
Also used : ISeq(clojure.lang.ISeq) GroovyTest(org.enumerable.lambda.support.groovy.GroovyTest) ScalaTest(org.enumerable.lambda.support.scala.ScalaTest) JRubyTest(org.enumerable.lambda.support.jruby.JRubyTest) Test(org.junit.Test) JavaScriptTest(org.enumerable.lambda.support.javascript.JavaScriptTest)

Example 5 with ISeq

use of clojure.lang.ISeq in project enumerable by hraberg.

the class ClojureTest method interactingWithClojure.

@Test
public void interactingWithClojure() throws Exception {
    eval("(def v [1 2 3 4 5])");
    IPersistentVector v = eval("v");
    IFn times = defn("times", fn(n, m, n * m));
    Integer factorial = 120;
    assertEquals(factorial, (reduce(times, 1, v)));
    assertEquals(factorial, eval(reduce, times, 1, v));
    assertEquals(factorial, eval("(reduce times 1 v)"));
    IFn isOdd = eval("odd?");
    ISeq odd = list(1L, 3L, 5L);
    assertEquals(odd, (filter(isOdd, v)));
    assertEquals(odd, eval(filter, isOdd, v));
    assertEquals(odd, eval("(filter odd? v)"));
    IFn isEven = defn("is-even?", toIFn(Lambda.λ(n, n % 2 == 0)));
    ISeq even = list(2L, 4L);
    assertEquals(even, (filter(isEven, v)));
    assertEquals(even, eval(filter, isEven, v));
    assertEquals(even, eval("(filter is-even? v)"));
}
Also used : IFn(clojure.lang.IFn) ISeq(clojure.lang.ISeq) IPersistentVector(clojure.lang.IPersistentVector) GroovyTest(org.enumerable.lambda.support.groovy.GroovyTest) ScalaTest(org.enumerable.lambda.support.scala.ScalaTest) JRubyTest(org.enumerable.lambda.support.jruby.JRubyTest) Test(org.junit.Test) JavaScriptTest(org.enumerable.lambda.support.javascript.JavaScriptTest)

Aggregations

ISeq (clojure.lang.ISeq)7 GroovyTest (org.enumerable.lambda.support.groovy.GroovyTest)5 JavaScriptTest (org.enumerable.lambda.support.javascript.JavaScriptTest)5 JRubyTest (org.enumerable.lambda.support.jruby.JRubyTest)5 ScalaTest (org.enumerable.lambda.support.scala.ScalaTest)5 Test (org.junit.Test)5 Seqable (clojure.lang.Seqable)2 IFn (clojure.lang.IFn)1 IPersistentVector (clojure.lang.IPersistentVector)1 Var (clojure.lang.Var)1 ByteBuffer (java.nio.ByteBuffer)1 MappedByteBuffer (java.nio.MappedByteBuffer)1