# Power-dot: enhanced Java interop that allows you to treat Clojure functions as Java lambdas

**URL:** https://clojureverse.org/t/power-dot-enhanced-java-interop-that-allows-you-to-treat-clojure-functions-as-java-lambdas/7105
**Category:** Your Projects and Libraries
**Tags:** interop, clojure, macros
**Created:** [February 1, 2021, 1:51pm UTC](https://clojureverse.org/t/power-dot-enhanced-java-interop-that-allows-you-to-treat-clojure-functions-as-java-lambdas/7105 "2021-02-01T13:51:44Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![athos](https://clojureverse.org/user_avatar/clojureverse.org/athos/32/730_2.png) [@athos](https://clojureverse.org/u/athos)
#### Post date: [February 1, 2021, 1:51pm UTC](https://clojureverse.org/t/power-dot-enhanced-java-interop-that-allows-you-to-treat-clojure-functions-as-java-lambdas/7105/1 "2021-02-01T13:51:44Z")

</div>

I’ve just released a new Clojure library named [power-dot](https://github.com/athos/power-dot).

It provides an enhanced Java interop feature that allows you to treat Clojure functions as Java lambdas.  
Using `power-dot`, you can write code like:

```clojure
(require '[power-dot.core :as dot])

(dot/.. (IntStream/range 0 10)
        (filter even?)
        (map #(* % %))
        (forEach println))

```

instead of:

```clojure
(.. (IntStream/range 0 10)
    (filter (reify IntPredicate (test [_ x] (even? x))))
    (map (reify IntUnaryOperator (applyAsInt [_ x] (* x x))))
    (forEach (reify IntConsumer (accept [_ x] (println x)))))

```

Give it a try!

---

<div class="post-metadata">

### Author: ![system](https://clojureverse.org/uploads/default/original/2X/5/51079bf9e4b7d9466242c06cf1e43b9f8bd6da14.png) [@system](https://clojureverse.org/u/system)
#### Post date: [August 3, 2021, 1:51am UTC](https://clojureverse.org/t/power-dot-enhanced-java-interop-that-allows-you-to-treat-clojure-functions-as-java-lambdas/7105/2 "2021-08-03T01:51:48Z")

</div>

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.
