如何執行 Haskell Script ?

栏目: 编程语言 · 发布时间: 5年前

内容简介:GHC 是 Haskell 最有名的 compiler,除了可編譯 Haskell 外,還提供了 REPL 與 Script 模式,讓我們甚至可以直接寫 Haskell Script,非常方便。macOS High Sierra 10.13.6GHC 8.4.3

GHC 是 Haskell 最有名的 compiler,除了可編譯 Haskell 外,還提供了 REPL 與 Script 模式,讓我們甚至可以直接寫 Haskell Script,非常方便。

Version

macOS High Sierra 10.13.6

GHC 8.4.3

安裝 GHC

$ brew install ghc

使用 Homebew 安裝 GHC。

REPL 執行 Haskell

修改 Prompt

預設 prompt 為 Prelude> ,可自行修改成 ghci>

.ghci

:set prompt "ghci> "

在 home directory 建立 .ghci ,設定 prompt 為 ghci

如何執行 Haskell Script ?

執行 GHCi

$ ghci

輸入 ghci 執行 GHC 的 REPL 模式。

如何執行 Haskell Script ?

  1. 輸入 ghci
  2. 在 REPL 模式輸入 putStrLn "Hello World" 顯示 Hello World

離開 GHCi

ghci> :quit

輸入 :quit 離開 GHCi。

如何執行 Haskell Script ?

編譯執行 Haskell

GHC 可將 Haskell 編譯成執行檔執行。

建立 Hello World

hello-world.hs

main = putStrLn "Hello World"

以 Haskell 印出簡單的 Hello World

GHC 編譯

$ ghc -o hello-world ./hello-world.hs

使用 ghc 編譯 hello-world.hs

  • -o : o utput 執行檔的檔名

如何執行 Haskell Script ?

如何執行 Haskell Script ?

  1. 編譯出 hello-world 執行檔,也一併編譯出 .hi.hs.o 等中間檔

執行 Hello World

$ ./hello-world

直接執行 hello-world 執行檔。

如何執行 Haskell Script ?

Script 執行 Haskell

Haskell 也可以不用編譯,直接以 Script 形式執行。

建立 Hello World Script

hello-world.hs

#!/usr/bin/env runghc --

main = putStrLn "Hello World"

如何執行 Haskell Script ?

設定執行權限

Script 要能執行,必須先設定期有被執行權限。

$ chmod +x hello-world.hs

使用 chmod 設定 hello-world.hs 能被執行。

如何執行 Haskell Script ?

  1. 紅色 代表有執行權限。

執行 Hello World Script

$ ./hello-world.hs

直接執行 hello-world.hs

如何執行 Haskell Script ?

為了證明 GHC 沒有偷偷編譯,我們來看一下目前目錄。

如何執行 Haskell Script ?

  1. 仍然只有 hello-world.hs ,證明 GHC 沒有偷偷編譯再執行

Conclusion

  • Haskell 除了可編譯外,尚提供 REPL 與 Script
  • 尤其是 Haskell Script,讓 Haskell 的可用性又更上一層樓

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

垃圾收集

垃圾收集

琼斯 / 谢之易 / 人民邮电出版社 / 2004-4-1 / 45.00元

书围绕着动态内存自动回收的话题,介绍了垃圾收集机制,详细分析了各种算法和相关技术。 本书共12章。第1章首先介绍计算机存储器管理的演化和自动内存回收的需求,并引入了本书所使用的术语和记法。第2章介绍了3种“经典”的垃圾收集技术:引用计数(reference counting)、标记-清扫(mark-sweep)和节点复制(copying)。 随后的4章更详细地讨论了上述这些垃圾收集方式......一起来看看 《垃圾收集》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器