Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell程序复制列表中的元素(对于k值,应重新计算k次)_Haskell - Fatal编程技术网

Haskell程序复制列表中的元素(对于k值,应重新计算k次)

Haskell程序复制列表中的元素(对于k值,应重新计算k次),haskell,Haskell,我是哈斯克尔的新手。 例如 [1],[2,2],[3,3,3]。像这样的东西怎么样 replicate' :: [Int] -> [[Int]] replicate' l = map (\n -> take n (repeat n)) l replicate' [1, 2, 3] -- [[1],[2,2],[3,3,3]] 像这样的怎么样 replicate' :: [Int] -> [[Int]] replicate' l = map (\n -> take n (

我是哈斯克尔的新手。 例如
[1],[2,2],[3,3,3]。

像这样的东西怎么样

replicate' :: [Int] -> [[Int]]
replicate' l = map (\n -> take n (repeat n)) l
replicate' [1, 2, 3] -- [[1],[2,2],[3,3,3]]

像这样的怎么样

replicate' :: [Int] -> [[Int]]
replicate' l = map (\n -> take n (repeat n)) l
replicate' [1, 2, 3] -- [[1],[2,2],[3,3,3]]

您可以通过写入以下内容来构造一个包含k乘以te项x的列表:

replicate k x
现在我们要将原始列表中的每个项目x映射到一个包含x,x次的列表。例如,我们可以将其写成:

replic the_list = map helper the_list
    where helper x = replicate x x
或者使用lambda表达式:

或者我们可以使用以下功能:

import Control.Monad(join)

replic the_list = map (join replicate) the_list
我们也可以在这里使用eta简化:删除function子句头部和正文中的_列表:

import Control.Monad(join)

replic :: [Int] -> [[Int]]
replic = map (join replicate)

您可以通过写入以下内容来构造一个包含k乘以te项x的列表:

replicate k x
现在我们要将原始列表中的每个项目x映射到一个包含x,x次的列表。例如,我们可以将其写成:

replic the_list = map helper the_list
    where helper x = replicate x x
或者使用lambda表达式:

或者我们可以使用以下功能:

import Control.Monad(join)

replic the_list = map (join replicate) the_list
我们也可以在这里使用eta简化:删除function子句头部和正文中的_列表:

import Control.Monad(join)

replic :: [Int] -> [[Int]]
replic = map (join replicate)