haskell - 什么是合法的识字 Haskell?某处的正式语法?

标签 haskell markdown literate-programming

Someone有一个将 Literate Haskell 和 Markdown 结合起来的好主意。对我来说很有意义,所以我想尝试一下。但是 Haskell 不喜欢 Markdown '#' header 语法:

Hello World

> main = putStrLn "hello, world"

作品...
$ runhaskell hello_world.lhs 
hello, world

尽管...
# Hello World #

> main = putStrLn "hello, world"

不...
$ runhaskell hello_world.lhs
hello_world.lhs:1:3: lexical error at character 'H'

有什么是合法的定义吗? Haskell 语法仅提及 Literate Haskell例如,并没有暗示 Markdown 语法是无效的。

最佳答案

第一列中的“#”会导致 GHCi 出现问题,即使代码块前后有空行也是如此。如果您使用的是 Pandoc,则可以通过为标题使用下划线来解决此问题。

Hello World
------------

> main = putStrLn“你好,世界”

这是一个已知问题:http://hackage.haskell.org/trac/ghc/ticket/4836

关于haskell - 什么是合法的识字 Haskell?某处的正式语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508886/

相关文章:

haskell - 从 "stack exec"获取分析文件

haskell - 将正确性约束直接编码到 Haskell 类型系统中?

haskell - GHC 重写规则是否知道识别语法糖?

r - 如何使用Rstudio在Rmd中的引用后插入附录?

reactjs - 如何从 React 组件安全地渲染 Markdown?

Markdown - 带有 :colons:? 的图像

c - 为什么 Knuth 使用这种笨拙的减量?

python - 使用 Org–Babel 控制缩进

java - 具有惰性评估的复杂结构翻译

haskell - 如何为有文化的 Haskell 编程设置 vim 缩进?