gpt4 book ai didi

Haskell:生成元组列表(0..x,0..y)

转载 作者:行者123 更新时间:2023-12-05 09:12:10 25 4
gpt4 key购买 nike

我正在尝试生成一个包含 [(0,0),..,(x-1,y-1)] 的列表,仅给定 x 和 y。

元组用于表示大小为 (x,y) 的字段中的单元格。例如(3,3) 必须返回一个列表 [(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),( 2,0),(2,1),(2,2)]

我尝试了 [(0,0)...(3,3)] 因为我真的不知道如何在 Haskell 中做到这一点。

最佳答案

列表是 Applicative 的一个实例,顺序应用程序的作用是获取左列表中的每个函数和右列表中的每个项目,并产生应用于该项目的函数。我们可以生成这样的列表:

(,) <b><$></b> [0 .. 2] <b><*></b> [ 0 .. 2 ]

或使用 liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c :

import Control.Applicative(<b>liftA2</b>)

result = <b>liftA2</b> (,) [0 .. 2] [0 .. 2]

或者我们可以利用列表理解:

result = [ (x, y) | x <- [0 .. 2], y <- [0 .. 2] ]

关于Haskell:生成元组列表(0..x,0..y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58886199/

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