我再次用这个代码碰到了障碍......我发布了早先很不同的代码,所以现在改变了,所以是问题!所以我有一个函数调试一些哈斯克尔函数,警卫
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
现在,基本上都是正在发生的事情是,这是应该读取一行,如果该行开头##拍打着整个线H3标签帮助我的功能doubleHash x和去除 ##。所以第一个后卫,我相信就是这样。所以,我认为doubleHash函数有问题。所以这里是doubleHash帮助函数
doubleHash ('#' : '#' : []) = True
doubleHash _ = False
所以使用cons,只是说##会返回true。 不知道这里有什么问题,但是当convertToHTML被调用来运行doubleHash x时,它不适用doubleHash == True的概念,所以在这一行打了一个H3标记!而是去正确的头x和H1标签同时适用于线... 例如:文本
- >#这应该是一个H1标记线
- > ##这应该是一个H3标记的行
然而,两者都被H1标签打了一巴掌。