将列表转换为Elm中的元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将列表转换为Elm中的元组相关的知识,希望对你有一定的参考价值。

Crossposted到Reddit)

如何将已知长度列表转换为相同长度的元组?有没有办法使用applicatives这样做?

更具体地说,我使用Random.Pcg.independentSeed从单个种子生成多个种子。然后我想将这些变量分配给几个变量:

import Random.Pcg as R

let
    (seed1, seed2, seed3) =
        R.step (R.list 3 R.independentSeed) seed
in
    ... use the 3 seeds

如果我需要第四个种子,我可以将“3”增加到“4”并在元组中添加另一个种子。

这是我提出的最好的:

let
    seeds =
        R.step (R.list 3 R.independentSeed) seed
        |> Tuple.first

    ( seed1, seed2, seed3 ) =
        case seeds of
            [ seed1, seed2, seed3 ] ->
                ( seed1, seed2, seed3 )

            _ ->
                ( R.initialSeed 0
                , R.initialSeed 0
                , R.initialSeed 0
                )
in
    ...use the 3 seeds
答案

没有通用的方法来创建一个返回不同长度的元组的函数。您可以使用applicatives来创建一些这样的帮助函数:

tuple2 : R.Generator a -> R.Generator (a, a)
tuple2 gen =
   R.map (,) gen
     |> R.andMap gen

tuple3 : R.Generator a -> R.Generator (a, a, a)
tuple3 gen =
   R.map (,,) gen
     |> R.andMap gen
     |> R.andMap gen

tuple4 : R.Generator a -> R.Generator (a, a, a, a)
tuple4 gen =
    R.map (,,,) gen
        |> R.andMap gen
        |> R.andMap gen
        |> R.andMap gen

以上是关于将列表转换为Elm中的元组的主要内容,如果未能解决你的问题,请参考以下文章

如何将字节对象转换为 python 3 中的元组列表?

将日期和列表的元组转换为 Pandas 数据框

将 Pandas 数据框转换为包含 ID 和权重的元组列表

如何将元组列表转换为 pandas 数据框,以便每个元组的第一个值代表一列?

将 Scala 列表转换为元组?

如何将熊猫系列转换为索引和值的元组