gpt4 book ai didi

haskell - 我如何使用 Monad-List 构建函数?

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

我在使用 monad-list 构建函数时遇到问题

 > multab 4
["1*1=1","1*2=2","1*3=3","1*4=4","2*2=4","2*3=6","2*4=8","3*3=9","3*4=12","4*4=16"]

所以我想这样开始:

multab :: Integer -> [String]

剩下的,你有什么建议吗?

提前致谢。

最佳答案

基本上你想生成一个条目列表,然后打印它们。

让我们从条目开始。这些由两个整数及其乘积组成。所以让我们定义一个类型同义词来保存这两个整数

type Entry = (Integer, Integer)

和计算这些整数乘积的评估函数,

eval :: Entry -> Integer
eval = uncurry (*)

然后,我们定义一个函数来生成条目:

gen :: Integer -> [Entry]
gen n = [(i, j) | i <- [1 .. n], j <- [i .. n]]

例如:

> gen 4
[(1,1),(1,2),(1,3),(1,4),(2,2),(2,3),(2,4),(3,3),(3,4),(4,4)]

接下来,我们需要能够打印一个条目:

showEntry :: Entry -> String
showEntry e@(i, j) = show i ++ "*" ++ show j ++ "=" ++ show (eval e)

例如:

> showEntry (2, 3)
"2*3=6"

最后,让我们将这些部分粘合在一起:

multab :: Integer -> [String]
multab = map showEntry . gen

开始吧:

> multab 4
["1*1=1","1*2=2","1*3=3","1*4=4","2*2=4","2*3=6","2*4=8","3*3=9","3*4=12","4*4=16"]

关于haskell - 我如何使用 Monad-List 构建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11427051/

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