gpt4 book ai didi

haskell - 我可以以简洁的方式计算多维数据集列表吗?

转载 作者:行者123 更新时间:2023-12-02 02:48:30 24 4
gpt4 key购买 nike

可以用高阶函数、Monads 或你有什么来简化以下函数吗?

cube list = [(x, y, z) | x <- list, y <- list, z <- list]

该函数只是创建一个列表,其中包含列表元素的所有三重排列。例如:
> cube [1..2]
[(1,1,1),(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1),(2,2,2)]

最佳答案

从 Bill 的回答来看,因为这是使用列表 monad 的代码,我们可以使用“applicative”风格来“使用高阶函数”。这是否是一个好主意留给工程师练习。

import Control.Applicative

cube :: [a] -> [b] -> [c] -> [(a,b,c)]
cube x y z = (,,) <$> x <*> y <*> z

关于haskell - 我可以以简洁的方式计算多维数据集列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4607011/

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