打印包含如何禁用的数据类型

时间:2018-02-02 08:16:40

标签: haskell

使用果戈理包, 按照例子得到

> exampleGetValue
-- ValueRange' {_vrValues = Just [String "2018/1/1",String "2018/1/2"], _vrRange = Just "'\24037\20316\34920\&1'!A1:1", _vrMajorDimension = Just VRMDRows} 
> exampleGetValue >>= return . view vrValues
-- [String "2018/1/1",String "2018/1/2"]
> mapM_ (print) (exampleGetValue >>= return . view vrValues)
String "2018/1/1"
String "2018/1/2"

为什么会有一串单词

怎么做我只能显示

2018/1/1
2018/1/2

1 个答案:

答案 0 :(得分:2)

看看

[String "2018/1/1",String "2018/1/2"]

的结果
> exampleGetValue >>= return . view vrValues

这里你感兴趣的字符串,如"2018/1/1"包含在另一个数据类型String中,我假设它有一个自动派生的show实例,它将打印Data构造函数的名称{ {1}}。

你需要以某种方式解压缩字符串以摆脱单词String的打印。

由于这是stackoverflow,我们被认为是提供答案,我现在会给你一个可能性,但在你阅读之前,请尝试自己做:

String

您必须自己确定unpackString (String w) = w mapM_ (print . unpackString) (exampleGetValue >>= return . view vrValues) 的类型签名,因为您没有提供任何类型。