Не удалось уменьшить список логических элементов в kotlin

Я пытаюсь отобразить в boolean и уменьшить в kotlin. Это мой код

class Model{ fun isEmpty() : Boolean } list.asSequence().map { model -> { model.isEmpty() } }.reduce { acc, next -> (acc && next)} 

Но компилятор дает мне сообщение об ошибке

 Type mismatch required () Boolean? but found Boolean 

Что я делаю не так? Надеюсь, что я не делаю ничего концептуально неправильно

Это не лямбда-синтаксис Котлина.

Котлинские лямбды полностью содержатся внутри {} , т. Е.

 { arg1, ..., argn -> [ lambda body ] [ last statement (implicitly returned) ] } 

При выполнении

 list.asSequence().map { model -> { model.isEmpty() } } 

Вы делаете лямбду, которая возвращает другую лямбда типа () -> Boolean :

 { model.isEmpty() } 

Таким образом, реальный тип этой лямбда (Model) -> () -> Boolean .

Снимите внутренние кронштейны:

 list.asSequence().map { model -> model.isEmpty() }.reduce { acc, next -> acc && next } 

Кроме того, однопараметрические lambdas имеют неявное имя параметра, поэтому вы можете просто написать:

 list.asSequence().map { it.isEmpty() }.reduce { acc, next -> acc && next } 

Кроме того, похоже, что вы пытаетесь проверить, пуст ли весь список. Я считаю, вы можете просто написать:

 list.all { it.isEmpty() } 

или используйте ссылку на метод:

 list.all(Model::isEmpty) 

хотя это зависит от личных предпочтений.