Haskell 入门学习(一)之安装试用 Haskell
文章目录
- Haskell 入门学习(一)之安装试用 Haskell
- 前言:
- 安装
- Windows 安装
- Linux、MacOs
- 使用 VSCode 进行代码编写
- 创建一个简单的项目
- 使用 Cabal 管理项目
- 项目大致结构
- 运行项目
- 结尾
前言:
最近对 Haskell 语言感兴趣,所以打算记录一下一些小历程,入门,那当然要先安装环境了,Haskell 的安装还是挺简单的,因为有 “ghcup” 这个工具管理包,它是用来专门安装GHC(也就是 Haskell 的环境)的, 相对来说,比传统的安装要方便很多。
安装
好,现在的你应该会直接去 Haskell 的官网直接下载,但是,下载速度感人,所以,如果你学过 Python 或是其他什么有 包管理器的语言时,你应该想到:这个语言的包管理器是否也能换源?换源即将下载服务器配置到中国国内,速度会快不少,所以官网的安装就不介绍了。我们介绍 中科大源。使用以下命令即可安装
Windows 安装
# Windows 用户:以非管理员身份在 PowerShell 中运行如下命令
$env:BOOTSTRAP_HASKELL_YAML = 'https://mirrors.ustc.edu.cn/ghcup/ghcup-metadata/ghcup-0.0.7.yaml'
Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://mirrors.ustc.edu.cn/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true
Linux、MacOs
# Linux, FreeBSD, macOS 用户:在终端中运行如下命令
curl --proto '=https' --tlsv1.2 -sSf https://mirrors.ustc.edu.cn/ghcup/sh/bootstrap-haskell | BOOTSTRAP_HASKELL_YAML=https://mirrors.ustc.edu.cn/ghcup/ghcup-metadata/ghcup-0.0.7.yaml sh
在安装过程中,需要设置ghcup的安装目录,以及是否需要安装stack,cabal,HLS(语言服务器,必须安装的,因为语言提示相关需要语言服务器支持)。
在Windows下,ghcup会默认安装到C盘,我推荐安装到别的盘,你可以自己指定路径,Linux 安装不能改路径,在 Windows 可以改,直接将你的路径复制进去,然后回车就行。还要安装Cabal(可以用来项目管理,也要配置路径),安装时注意选定路径,因为是英文的,放图片又太占文章篇幅了,我就不放了,都是简单的配置英文。
使用 VSCode 进行代码编写
我就不讲 Linux 了,因为要配置 NVim ,不在这篇文章讲,在 Windows 用 VSCode 写 Haskell 代码就行。
首先我们要安装Haskell的插件,安装下面这两个就行,如果你看到了其他的插件,其实都没用,这两个就够了,第一个是主插件,第二个是语法高亮插件。
安装完成后我们需要配置 GHCup 的路径,打开vscode的设置,搜索 “haskell”会列出所有跟 haskell 相关的配置。下图的配置就是你 GHCup 的可执行文件的绝对路径。
这个插件可以自己进行管理,在下方的这个选项配置为 GHCup,令他自行管理。
好,到这里其他选项就不用看了,已经可以开写代码了。
创建一个简单的项目
使用 Cabal 管理项目
众所周知,项目也是有相应的管理器的,比如 C/C++ 的 Cmake,Java 的 maven,Rust 的 Cargo 等,在 Haskell 中,我们用 Cabel 进行项目管理。找一个地方创建一个 “Haskell”文件夹,这个文件夹存放我们所有的项目。
先创建一个“hello”文件夹,进入 hello ,使用以下命令创建一个项目
cabal init -i
其中,cabal init
是初始化一个简单项目,-i
参数代表 interactive
显示可交互配置,可以对项目进行更详细的配置,比如项目是可执行还是库等。很多项目信息是可更改的,所以不用太担心。
项目大致结构
我们可以看到,app文件夹是主目录,存放业务代码,src 文件夹是 库文件夹,也许能存放些你自己实现的有用工具。test文件夹是测试文件夹。其中,你可以注意到,项目下有一个后缀为 .cabal
的文件,这个文件是cabal项目配置文件,你可以在里面修改相应的项目配置。
运行项目
你也许会奇怪,项目才刚创建就能运行了吗?是的,我们可以开始尝试一下大名鼎鼎的 Haskell 了。
# ↓ 这条命令会编译现有项目
cabal build
# ↓ 这两条命令会运行你的项目,一个运行app,一个运行test, myHello 是项目名
cabal run myHello
cabal run myHello-test
输入 cabal run myHello
后,终端会显示如下信息,说明你正式开启了 Haskell 的领域
Up to date
Hello, Haskell!
someFunc
输入 cabal run myHello-test
后,显示如下信息,第二行的信息说明你还没编写test功能,显示默认信息。
Up to date
Test suite not yet implemented.
结尾
这篇文章阐述了 Haskell 基于 GHCup 的几乎无痛的安装,其次讲解了 Cabal 管理器的简单使用,代表 正式开启了 Haskell 学习之路,我打算在下一篇文章记录一下 Haskell 的基本内容。