11

誰かが Literate Haskell と Markdown を組み合わせるという素晴らしいアイデアを思いつきました。理にかなっていたので、試してみたいと思いました。しかし、Haskell が Markdown の '#' ヘッダー構文について気に入らない点があります。

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 構文が無効であることを示唆するものは何もありません。

4

3 に答える 3

5

最初の列の '#' は、コード ブロックの前後に空白行があっても、GHCi で問題を引き起こします。Pandoc を使用している場合は、見出しに下線を使用することでこの問題を回避できます。

こんにちは世界
-----------

> main = putStrLn "こんにちは、世界"

これは既知の問題です: http://hackage.haskell.org/trac/ghc/ticket/4836

于 2011-04-01T06:01:50.510 に答える
4

これを読む:

http://www.haskell.org/onlinereport/literate.html

エラーを回避するには、コメントとコードの間に空白行が必要であると書かれています。

于 2011-04-01T04:14:13.920 に答える
0

私はPandocでLHSのみを使用しましたが、Pandocは、バードトラックで区切られたブロック引用符が段落レベルの要素であり、Pandocマークダウン(および通常のマークダウン)の段落の前に空白行が必要であることを指定しています。したがって、次のように機能するはずです...

# Hello World #

> main = putStrLn "hello, world"
于 2011-04-01T04:13:02.950 に答える