gpt4 book ai didi

haskell - 如何在 [maybe string] 上使用 fmap 所以添加的字符串在 Just 之前?

转载 作者:行者123 更新时间:2023-12-02 02:45:09 26 4
gpt4 key购买 nike

我得到了以下功能:

maybeStrings:: [Maybe String] -> [Maybe String]
maybeStrings s = fmap ("Hello, "++) <$> s

问题是,我怎样才能在 Just 之前得到那个“Hello”?
例如,用户给出以下列表: [Just "Simpson"]并且当前的输出是 [Just "Hello, Simpson"] .我希望它是: ["Hello, Just Simpson"] .

最佳答案

从更简单的函数开始

foo :: String -> String
foo x = "Hello, Just " ++ x

然后使用 fmap两次:一次映射 fooMaybe值,并再次映射您的 fmap ped 函数覆盖 Maybe 的列表值(value)观:
> fmap foo Nothing
Nothing
> fmap foo (Just "Simpson")
Just "Hello, Just Simpson"
> fmap (fmap foo) [Just "Simpson", Nothing]
[Just "Hello, Just Simpson", Nothing]

然后
maybeStrings :: [Maybe String] -> [Maybe String]
maybeStrings = fmap (fmap ("Hello, Just " ++))

关于haskell - 如何在 [maybe string] 上使用 fmap 所以添加的字符串在 Just 之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59826845/

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