【发布时间】:2014-12-04 21:23:41
【问题描述】:
我再次遇到了这段代码的障碍...我发布了我之前的代码,这与之前有很大不同,所以现在它发生了变化,问题也随之而来!所以我有一个功能
convertToHTML :: String -> String
convertToHTML [] = [] --prevents calling head on empty line
convertToHTML x
| doubleHash x == True = "<h3>" ++ drop 2 x ++ "</h3>"
| head x == '#' = "<h1>" ++ tail x ++ "</h1>"
| x == "---" = "<hr/>"
| otherwise = x
现在,基本上发生的事情是,我的辅助函数 doubleHash x 应该读取一行,如果该行以 ## 开头,则在整行上打一个 h3 标签并删除 ##。所以第一后卫,我相信就是这样做的。所以,我认为 doubleHash 函数有问题。所以这里是 doubleHash 辅助函数
doubleHash ('#' : '#' : []) = True
doubleHash _ = False
所以使用 cons,只是说 ## 会返回 true。 不知道这里出了什么问题,但是当调用 convertToHTML 来运行 doubleHash x 时,它不应用 doubleHash == True 的概念,所以在这一行打一个 H3 标记!相反,它直接指向 x 并将 H1 标签应用于两行...... 例如:文本
--> #这应该是H1标签行
--> ##这应该是H3标签行
但是两者都被 H1 标签打了。
【问题讨论】:
标签: html debugging haskell helpers