Small nitpick :p
Although due to the ambiguity of the word "function", your nitpick still has its place.
I would really like a way to express pure functions in Java. There would need to some way to mark objects as immutable at the language level.
It annoys me even more than no-one seems to care about it much, and most think final is good enough - you can still mutate final objects. In C++ all references are final (in a Java sense) since they can't be reseated, but const actually gets you immutability (modulo const_cast).
I just want everything to be immutable unless mutability is really truly needed!
Otherwise Scala is pretty pragmatic about it (val vs var).
In both cases you still get only shallow immutability, but if nigh every object itself is immutable, shallow immutability may not be so shallow.
Have you tried Rust? It’s nice in this regard; variables are immutable unless explicitly declared mutable.