Haskell
纯函数式编程语言
安装
注意
所有的安装步骤都需要配置代理,而且Haskell工具链的大小异常庞大
组件
- 编译器
GHC(Glasgow Haskell Compiler)
:最流行的 Haskell 编译器GHCi(Glasgow Haskell Compiler Interactive mode)
:REPL(Read-Eval-Print Loop)环境,交互式解释器
- 包管理器
Cabal
:Haskell 的包管理器Stack
:基于 Cabal 的包管理器,提供了更好的依赖管理和构建工具
- 语言服务器
HLS(Haskell Language Server)
:Haskell 语言服务器,提供了 IDE 功能
自动安装
如果不想麻烦,就用GHCup
一键安 装所有工具链
顺便说说
Haskell学习曲线非常的陡峭
并且资料极其稀少
在普通的OOP(面向对象编程)语言中的很多概念可能都无法使用
并且还掺杂很多范畴论的概念
Haskell是严格类型的
本文参考了魔力Haskell
这本书非常全面
还有Haskell 2010 Language Report
前置概念
λ演算
Lambda Calculus
λ演算是Haskell的基石
视频介绍
其他
结合
:优先计算某个方向,比如右结合就是优先计算右边的表达式
你可能需要知道
Haskell语句的组成
不是声明就是表达式
此处,声明尽量和其他语言的声明区分开,尽量使用自然语言的“声明”去理解
声明就是事先规定好什么东西的语句,比如类型声明(类型签名)、类型类声明、绑定声明
表达式就是有值的式子、可以返回值的式子,比如函数、算术运算、甚至是单个的数字或者字符
所有值不可变
Haskell中所有值都是常量
所以,没 有 变 量
无顺序
Haskell语句没有顺序之分
命名规则
- 强制规定
- 必须以小写字母开头
- 变量名、函数名
- 必须以大写字母开头
- 类型名和构造器
- 必须以小写字母开头
- 非强制规定
x'
一般代表稍加修 改过的x
注释
Comments
-- 单行注释
{-
多行注释
-}
Hello World
main = putStrLn "Hello, World!"