用范畴编程的语言 | Haskell 简介
唠唠闲话
去年学纽结理论,看到一段用 Mathematica 求不变量的代码后,开始入坑函数式编程。
函数式编程,这种抽象的编程方法更符合基础数学学生的思考逻辑,也更适合用于做抽象的数学推导。顺着函数式编程,又了解到语言更抽象的 Haskell,据说现在的编程语言都多少受 Haskell 的一些思想影响。
Haskell 简述
Haskell 的命名源自美国逻辑学家 Haskell Brooks Curry,其在数学逻辑方面的工作使得函数式编程语言有了广泛的基础。
Haskell 优点
- 使用纯函数式语言更加符合数学和逻辑的表达形式
- 使用纯函数式编程有利于编程技术在思想层面的精益求精
- 打破习惯上使用ALGO系的编程语言(C/C++等)形成了一些固有的思维习惯
- 有助于学习数学本身,特别是抽象的纯数学
B站搜范畴论,还可以找到这个视频面向程序员的范畴论,教学用的软件就是 Haskell 。
相关阅读
CSDN:浅谈 Haskell
知乎:学过Haskell是一种怎样的体验
知乎:有必要学 Haskell 吗
知乎:Haskell 劝退
简书:为什么要学习Haskell语言
博客:为什么业界很少使用 Haskell
安装及使用
Ubuntu
- 打开 shell,输入如下命令行,根据提示和自己需要操作:添加 bash 路径;安装 haskell-language-server (HLS);安装 stack。
1 | curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh |
- 显示内容如下:
1 | Welcome to Haskell! |
注:下载和安装需要等待较长时间。
注2:bash 路径设置后,打开终端如果提示不是有效的标识符
,是文件~/.bashrc
最后一行export
的语法错了,删掉后半截完事。
- 安装 GHC
1 | sudo apt install ghc |
Windows
安装 Chocolatey
- 软件简介
Chocolatey 是 Windows 下的包安装管理器,类似 Linuux 下的
apt-get
或yum
。官方链接。
- 在 Windows 中搜索 PowerShell 并用管理员权限打开,输入代码
1 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) |
注: 终端会显示报错信息,忽略不管
安装 Haskell 和 GHC
-
管理员权限打开 PowerShell,输入代码,提示内容均输入 y
1
choco install haskell-dev
注:GHC 是 Haskell 的编译器。
-
安装完成,显示内容如下
1
2
3
4
5
6
7
8
9Chocolatey installed 5/5 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Installed:
- ghc v9.0.1
- chocolatey-core.extension v1.3.5.1
- haskell-dev v0.0.1
- msys2 v20210604.0.0
- cabal v3.4.0.0 -
测试安装
新建文件 haskell.hs, 内容如下1
2main :: IO()
main = putStrLn "Hello World!"打开命令行,进入文件所在目录,执行
1
ghc haskell.hs
VsCode 扩展
打开 vscode,搜索安装扩展 haskell
和 code runner
。
软件使用
- 安装扩展后,右上角会出现运行按钮,在 vscode 上编辑 haskell 文件时,点击按钮就会编译运行。
- 一般地,ubuntu 使用 shell,Windows 使用 PowerShell ,输入命令
ghc 文件名.hs
编译文件。
注:Windows 端
code runner
扩展好像用不了,Ubuntu 一切正常。
文章采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自 学习乐园!
评论