gpt4 book ai didi

haskell - 使用 - 在 haskell 中加入两个 IO

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

我需要加入两个IO String s 带有 -之间。这是我想出的,有效的方法 - 正确的方法是什么?

import System.Environment
f :: String -> String -> IO String
f x y = (foldl1 (++)) <$> sequence [(getEnv x),(return "-"),(getEnv y)]

最佳答案

您可以在这里使用应用样式函数:

f :: String -> String -> IO String
f x y = withHyp <$> getEnv x <*> getEnv y
where withHyp ex ey = ex ++ '-' : ey

所以在这里我们加入了两个 String然后通过 withHyp 在中间用连字符连接功能。

或者对于我们需要获取的环境变量列表,我们可以使用 mapM并执行 intercalate :
import Data.List(intercalate)

f :: [String] -> IO String
f xs = intercalate "-" <$> mapM getEnv xs

关于haskell - 使用 - 在 haskell 中加入两个 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54220840/

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