Существуют ли элегантные способы превратить Список в NonEmptyList в kotlin и arrow? - PullRequest
0 голосов
/ 29 января 2019
fun main() {
    val list = listOf(1, 2, 3, 4, 5) 

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

Согласно документам стрелка, кажется, что это можно сделать через Semigroup или Monad binding.Однако нет кода для замены List на NonEmptyList.

. Есть ли лучший способ заменить List на NonEmptyList без использования subList?

1 Ответ

0 голосов
/ 29 января 2019

Существует сопутствующая функция fromList, которая возвращает Option<NonEmptyList> или, если вы уверены, что используете fromListUnsafe:

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

val nelistOption = NonEmptyList.fromList(list)

val nelist = NonEmptyList.fromListUnsafe(list)
...