谁可以提供有关 START_FILE
GHC Pragmas Documentation中没有关于START_FILE
的消息。尽管如此,它似乎已被广泛使用[1],[2],[3]。
很遗憾,ghc 8.2.2
无法编译以下代码[1]。
{-# START_FILE main.hs #-}
main = readFile "file.txt" >>= putStr
{-# START_FILE file.txt #-}
Hello, world!
答案 0 :(得分:7)
否,这是School of Haskell Markdown的扩展名。它用于在单个Markdown代码块中提供多个“文件”。
由于这个原因,它在Haskell学校之外并未被“广泛使用”。读取此类代码段时,只需将START_FILE
编译后的所有内容都视为文件中的所有内容,并将其表示为参数(如果它表示格式为BASE64
,则需要将解码后的字节放入放入文件中。)
答案 1 :(得分:2)
stack
模板使用了该实用指示。您可以通过使用.hsfiles
杂用分隔文件来在扩展名为{-# START_FILE #-}
的单个文件中指定多个文件。
stack new PACKAGE_NAME myfiles.hsfiles
将根据您的布局创建这些文件(并自动创建所有目录),如果myfiles.hsfiles
包含以下内容:
{-# START_FILE {{name}}.cabal #-}
name: {{name}}
version: 0.1.0.0
或
{-# START_FILE package.yaml #-}
name: {{name}}
version: 0.1.0.0
请参阅此存储库中的一些示例: