gpt4 book ai didi

haskell - 为什么 >> 在 haskell 中复制右侧操作数

转载 作者:行者123 更新时间:2023-12-05 08:45:58 24 4
gpt4 key购买 nike

我正在寻找一个字符串重复 n 次的解决方案。我从这个 solution 中找到了 duplicate n str = [1..n] >> str .我想知道为什么这个方法会复制 str

我搜索了 >>>,我发现了以下几点:

k >> f = k >>= \_ -> f

a >> b >> c >> d
-- is is equivalent to
do a
b
c
d

那我试试这个

ghci> do [1..3]; "a"
"aaa"

但我仍然不明白它是如何工作的。谁能解释这种行为?

最佳答案

列表的 >>= 的定义是 concatMap:对列表的每个元素应用一个函数,然后连接结果。当您使用 >>> 时,这意味着应用一个函数,该函数忽略 列表中的每个元素,而是返回 > 右侧的常量值>

[1..3] >> "a" == [1..3] >>= \_ -> "a"
== concatMap (\_ -> "a") [1..3]
== "a" ++ "a" ++ "a"
== "aaa"

关于haskell - 为什么 >> 在 haskell 中复制右侧操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70802489/

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