Flix – Safe, reliable, concise, and functional-first programming language
The Datalog support is a very interesting feature for such a fully-featured language. From the home page:<p><pre><code>    def reachable(g: List[(String, Int32, String)], minSpeed: Int32): List[(String, String)] =
        let facts = project g into Road; 
        let rules = #{
            Path(x, y) :- Road(x, maxSpeed, y), if maxSpeed &gt;= minSpeed.
            Path(x, z) :- Path(x, y), Road(y, maxSpeed, z), if maxSpeed &gt;= minSpeed.
        };
        query facts, rules select (src, dst) from Path(src, dst) |&gt; Foldable.toList
</code></pre>
Composing datalog natively like any other type – very cool.