gpt4 book ai didi

haskell - 在 haskell 中传递变量的 Monad

转载 作者:行者123 更新时间:2023-12-02 21:28:24 25 4
gpt4 key购买 nike

有没有可能通过使用 Monad 在一行中重写它?

input <- getLine
let parsed = reads input :: [(Int,String)]

我无法理解如何传递输入,我的尝试是考虑 lambda 表示法。

最佳答案

fmap 的另一个地方!使用 fmap 更改其他内容内的一个或多个值 - 在本例中是在 getLine 内,但它的用途更广泛。

parsed <- fmap reads getLine :: IO [(Int,String)]

或者使用import Data.Functorimport Control.Applicative你可以将其写为

parsed <- reads <$> getLine :: IO [(Int,String)]

编译器很可能能够从其他地方推断出您的意思是Int,在这种情况下您可以省略显式类型签名。

fmap 确实是一个非常非常有用的函数。您可以在 other answer about fmap 中阅读更多内容我最终写了一个迷你教程。

实际上,如果您对编写俏皮话的简洁方式感兴趣,那么您应该了解有关应用仿函数的更多信息。

关于haskell - 在 haskell 中传递变量的 Monad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226898/

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