0
fun main() {
    val list = listOf(1, 2, 3, 4, 5) 

    if (list.isNotEmpty()) {
        Nel(list[0], list.subList(1, list.lastIndex))
    }
}

根据箭头文件,它似乎可以通过Semigroupor来完成Monad binding。但是,没有代码可以替换ListNonEmptyList.

有没有更好的方法来替换List而不NonEmptyList使用subList

4

1 回答 1

6

有一个伴随函数fromList返回一个Option<NonEmptyList>或者如果你确定使用fromListUnsafe

val list = listOf(1, 2, 3, 4, 5)

val nelistOption = NonEmptyList.fromList(list)

val nelist = NonEmptyList.fromListUnsafe(list)
于 2019-01-29T06:24:35.180 回答