我们如何在Haskell中将boolean转换为string

时间:2016-05-04 06:06:42

标签: haskell boolean

我是Haskell的初学者。我试图将一个字符串添加到列表中,并且此字符串应包含"TRUE""FALSE",具体取决于条件。

type Output = [String]
type T = Bool 

f :: T -> [String]

我试图在这里使用printf,但我不知道bool类型的符号(如{的%d)。有没有什么好方法可以做到这一点?谢谢!

4 个答案:

答案 0 :(得分:5)

一个简单的if表达式怎么样?

Ionic

或者,如果你不关心大写,你可以在布尔值上使用Videogular

答案 1 :(得分:4)

您可以编写一个功能,将单个Bool转换为单个String

boolToString :: T -> String
boolToString True = "TRUE"
boolToString False = "FALSE"

但是从你的问题中不清楚[String]的其他部分应该是什么。

答案 2 :(得分:1)

您可以根据为show定义的Bool函数定义函数:

import Data.Char(toUpper)

showBool :: Bool -> String
showBool = map toUpper . show

由于show返回TrueFalse,因此您可以使用map toUpper函数将全部设为大写。

答案 3 :(得分:1)

您无法将Bool转变为[String],只需转换为String

您应该执行以下操作:

toString :: T -> String {-  T = Bool (It was a type defined by him-}
toString x = if x then "True" else "False"

如果您真的希望结果为[String],您可以这样做:

toString :: T -> [String] 
toString x = if x then ["True"] else ["False"]