haskell - 如何在绑定(bind)操作中使用非一元函数

标签 haskell monads

我觉得我应该已经知道这一点,但我如何在一行中使用 fromMaybe 而不是用 let 将其分成两行?

main = do
    maybePort <- lookupEnv "PORT"
    let port = fromMaybe "4020" maybePort
    putStrLn $ "Listening on:" ++ port

最佳答案

您可以使用 fmap <$> 像这样:

import Control.Applicative ((<$>))

main = do
    port <- fromMaybe "4020" <$> lookupEnv "PORT"
    putStrLn $ "Listening on:" ++ port

关于haskell - 如何在绑定(bind)操作中使用非一元函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542857/

相关文章:

haskell - 列表的索引内容 ([a] -> [(Int, a)])

Haskell - 使用 Reader monad 的二叉树中每个节点的深度

haskell - ubuntu haskell ghci 7.4.1 找不到模块 "System.Random"

file - 如何将文件读入 double 向量?

scala - 等效于 Scala 中的 Haskell do-notation 或 F# 计算表达式?

haskell - 在交互式命令行提示期间维护状态

haskell - 从 Continuation monad 中的 IO monad 转义

list - Haskell - 将一个列表拆分为多个列表

haskell - 为什么在 Haskell 中声明参数化数据类型?

c - 如何提高这个 Haskell 程序的性能?