haskell - haskell中一系列独立的if语句

标签 haskell if-statement

可能是一个愚蠢的问题,但我一生都无法弄清楚。

我想根据一系列 if 语句附加到列表的末尾。

在Python(或我熟悉的大多数其他语言)中,我可以这样做:

x = ["hi"]
if True:
    x.append("hello")
if not True:
    x.append("wait a minute...")
if True:
    x.append("goodbye")

这会给我:

['hi', 'hello', 'goodbye']

如何在 Haskell 中实现这样的目标?

我可以达到:

res :: [[Char]]
res =
    let x = ["Hi"]
    in
        if (True)
            then x ++ ["hello"]
            ... what goes here???
        else x

或者我的做法完全错误吗?

我对 Haskell 很陌生,所以请不要咬...

最佳答案

按照惯用语,

x = concat [ [ "hi" ],
             [ "hello" | True ],
             [ "wait a minute..." | not True ],
             [ "goodbye" | True ] ]

关于haskell - haskell中一系列独立的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25946688/

相关文章:

haskell - 了解 Haskell 类型

haskell - 在管道内使用持久化

c# - 检测到无法访问的代码,if 语句中的变量

javascript - 条件 IF 无法正常工作

Mysql语法 "if length then"语句

MySQL 选择列(如果存在)

haskell - 做MapReduce的最佳功能语言?

haskell - 何时使用带有延续的foldr作为累积函数?

haskell - 帮助我理解我的 Haskell ghci 配置文件中的函数

python - 使用嵌套的 'for' 语句加速 Python 'if' 循环