可能是一个愚蠢的问题,但我一生都无法弄清楚。
我想根据一系列 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/