gpt4 book ai didi

list - 在每个位置创建具有新元素的列表列表

转载 作者:行者123 更新时间:2023-12-04 23:14:42 27 4
gpt4 key购买 nike

我是haskell 世界的新手,我想知道如何在haskell 中列表的每个位置插入一个值,并返回一个包含每个位置值的子列表列表。例如:

insert' :: a -> [a] -> [[a]]
insert' a [] = [[a]]
insert' a list = ??

得到类似的东西:
insert' 7 [1,2,3] = [[7,1,2,3],[1,7,2,3],[1,2,7,3],[1,2,3,7]]

最佳答案

insert' :: a -> [a] -> [[a]]
insert' y [] = [[y]]
insert' y xss@(x:xs) = (y : xss) : map (x :) (insert' y xs)

虽然空列表情况很自然,但让我们看看 insert' y xss@(x:xs) .我们基本上有两种情况需要涵盖:
  • y出现在x前面.那么我们就可以使用 y : xss .
  • y出现在 x 之后的某处.因此,我们只需将其插入列表的其余部分并确保 xmap (x:) 的第一个元素.
  • 关于list - 在每个位置创建具有新元素的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976590/

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