Если убрать сахар, то получается
fun getHtml() {
return html({ _ ->
this.head({ _ ->
this.script(src="/script.js")
});
this.body({ _ ->
this.p("hello world")
this.img(src="static/faxdfh245.jpg")
});
}).toString();
}
А надо это чтобы можно было крутить циклы и пихать ифы при построении. Т.е. чуть более императивный код, а не просто объявление массива.
В дарте хотели сделать то же самое, но без лямбд, так у них можно цикл в массиве крутить и if как оператор, а не выражение вызывать. Не очень помню синтаксис, но что-то типа:
[Label("hello"),
Button("ok"),
for (int i = 0, i < N; i++)
Label("line ${i}")
Button("exit")
if (isFoo),
Label("Goodbye")]