我是Haskell的初学者。我试图将一个字符串添加到列表中,并且此字符串应包含"TRUE"
或"FALSE"
,具体取决于条件。
type Output = [String]
type T = Bool
f :: T -> [String]
我试图在这里使用printf
,但我不知道bool类型的符号(如{的%d
)。有没有什么好方法可以做到这一点?谢谢!
答案 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
返回True
或False
,因此您可以使用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"]