Haskell 入门

在线 REPL

开始编写 Haskell 的最简单方法可能是访问 Haskell 网站尝试 Haskell并在主页上使用在线 REPL(read-eval-print-loop)。在线 REPL 支持大多数基本功能甚至一些 IO。还有一个基本教程可以通过输入命令 help 来启动。一个理想的工具,开始学习 Haskell 的基础知识并尝试一些东西。

GHC(I)

对于准备参与更多的程序员来说, GHCiGlorious / Glasgow Haskell 编译器 附带的交互式环境。该 GHC 可以单独安装,但是,这只是一个编译器。为了能够安装新库,还必须安装 CabalStack 等工具。如果你运行的是类 Unix 操作系统,最简单的安装是使用以下命令安装 Stack

curl -sSL https://get.haskellstack.org/ | sh

这会将 GHC 与系统的其他部分隔离开来,因此很容易删除。所有命令必须以 stack 开头。另一种简单的方法是安装 Haskell 平台 。该平台有两种形式:

  1. 最小的分布只包含 GHC (编译)和卡瓦尔/堆栈 (安装和构建软件包)
  2. 分布还包含用于项目开发,分析和覆盖分析工具。还包括另外一组广泛使用的包。

可以通过下载安装程序并按照说明或使用你的发行版的软件包管理器来安装这些平台 (请注意,此版本不保证是最新的):

  • Ubuntu,Debian,Mint:

    sudo apt-get install haskell-platform
    
  • Fedora 的:

    sudo dnf install haskell-platform
    
  • 红帽:

    sudo yum install haskell-platform
    
  • Arch Linux:

    sudo pacman -S ghc cabal-install haskell-haddock-api \
                   haskell-haddock-library happy alex
    
  • Gentoo 的:

    sudo layman -a haskell
    sudo emerge haskell-platform
    
  • OSX 与 Homebrew:

    brew cask install haskell-platform
    
  • OSX 与 MacPorts:

    sudo port install haskell-platform
    

安装后,应该可以通过在终端的任何位置调用 ghci 命令来启动 GHCi 。如果安装顺利,控制台应该看起来像

me@notebook:~$ ghci
GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Prelude> 

可能还有关于在 Prelude> 之前加载了哪些库的更多信息。现在,控制台已成为 Haskell REPL,你可以像在线 REPL 一样执行 Haskell 代码。为了退出这个互动环境,可以输入:q:quit。有关 GHCi 中可用命令的更多信息,请在开始屏幕中键入:?

因为在一行上一次又一次地写相同的东西并不总是这样,所以在文件中编写 Haskell 代码可能是个好主意。这些文件通常具有 .hs 作为扩展名,可以使用:l:load 加载到 REPL 中。

如前所述, GHCiGHC 的一部分, GHC 实际上是一个编译器。此编译器可用于将带有 Haskell 代码的 .hs 文件转换为正在运行的程序。因为 .hs 文件可以包含许多函数,所以必须在文件中定义 main 函数。这将是该计划的起点。可以使用该命令编译文件 test.hs

ghc test.hs

如果没有错误并且正确定义了 main 函数,这将创建目标文件和可执行文件。

更高级的工具

  1. 它之前已经被提到作为包管理器,但是堆栈可以以完全不同的方式用于 Haskell 开发的有用工具。一旦安装,它就能够

    • 安装(多个版本) GHC
    • 项目创建和 Scaffolding
    • 依赖管理
    • 建设和测试项目
    • 标杆
  2. IHaskell 是 IPythonhaskell 内核 ,允许将(可运行的)代码与 markdown 和数学符号结合起来。