gpt4 book ai didi

list - 在 Haskell 中将已知长度的列表转换为嵌套对的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-02 02:49:54 25 4
gpt4 key购买 nike

应该如何将已知长度的列表转换为嵌套对?换句话说,填充下面的类型孔最方便的方法是什么?

_ [1,2]       :: (Int,Int)
_ [1,2,3] :: ((Int,Int),Int)
_ [1,2,3,4] :: (((Int,Int),Int),Int)
_ [1,2,3,4,5] :: ((((Int,Int),Int),Int),Int)

编辑:请注意,类型孔不需要具有相同的功能,我正在寻找一种方便的模式(如果存在方便的模式)来填充孔。

最佳答案

也许像这样:

step f xs = (f (init xs), last xs)
len1 = head
len2 = step len1
len3 = step len2
len4 = step len3

在ghci中:
*Main> len4 [1..4]
(((1,2),3),4)

当然也可以通过模式匹配直接实现这些功能之一:
len4' [a,b,c,d] = (((a,b),c),d)

这也不会像元素一样多次遍历列表,这很好。

关于list - 在 Haskell 中将已知长度的列表转换为嵌套对的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com