首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从haskell编译haskell

从haskell编译haskell
EN

Stack Overflow用户
提问于 2017-12-06 17:09:51
回答 1查看 115关注 0票数 1

所以我有一个haskell程序,我对一个haskell源文件做一些格式化,然后我想调用GHC来编译该文件,有人能告诉我怎么做吗?

如果这有帮助的话,这就是我正在制作的程序,它只是一个表情符号代码haskell解析器:

代码语言:javascript
复制
module EmojiParser where

import Prelude hiding (writeFile, readFile)  
import Data.Char
import Data.Text (pack, unpack)
import Path.Text.UTF8 (readFile, writeFile)
import Path.Internal

transpile filePath = do content <- readFile $ Path filePath
                        writeFile (Path filePath) . pack . parseEmoji . unpack $ content                       

parseEmoji :: [Char] -> [Char]
parseEmoji = foldl (++) "" . map f 
  where 
    minEmoji = 128511
    maxEmoji = 128592
    f x = let cval = ord x
          in if cval > minEmoji && cval < maxEmoji 
             then "emoji_symbol_" ++ (show cval) 
             else [x]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 11:44:54

下面是ghc用户指南中的一个示例:ghc.html#using-ghc-as-a-library

代码语言:javascript
复制
import GHC
import GHC.Paths ( libdir )
import DynFlags ( defaultLogAction )

main =
    defaultErrorHandler defaultLogAction $ do
      runGhc (Just libdir) $ do
        dflags <- getSessionDynFlags
        setSessionDynFlags dflags
        target <- guessTarget "test_main.hs" Nothing
        setTargets [target]
        load LoadAllTargets

有了这些,您应该能够这样做:

代码语言:javascript
复制
$ cat test_main.hs
main = putStrLn "hi"
$ ghc -package ghc simple_ghc_api.hs
[1 of 1] Compiling Main             ( simple_ghc_api.hs, simple_ghc_api.o )
Linking simple_ghc_api ...
$ ./simple_ghc_api
$ ./test_main
hi
$

一旦它对你如此有效,你应该很容易将它包含在你的程序中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47679826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档