【问题标题】:Are there elegant ways to turn a List into a NonEmptyList in kotlin and arrow?有没有优雅的方法可以在 kotlin 和箭头中将 List 变成 NonEmptyList?
【发布时间】:2019-01-29 14:29:41
【问题描述】:
fun main() {
    val list = listOf(1, 2, 3, 4, 5) 

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

根据箭头文档,似乎可以通过SemigroupMonad binding来实现。 但是,没有代码可以将List 替换为NonEmptyList

有没有更好的方法在不使用subList 的情况下将List 替换为NonEmptyList

【问题讨论】:

    标签: kotlin arrow-kt


    【解决方案1】:

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

    val list = listOf(1, 2, 3, 4, 5)
    
    val nelistOption = NonEmptyList.fromList(list)
    
    val nelist = NonEmptyList.fromListUnsafe(list)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      相关资源
      最近更新 更多