Valkyrie 语言教程
A multi-stage gradual typed language
介绍
Valkyrie 是一种实验性的多阶段编程语言, 结合了函数式编程和面向对象编程的特性,并探索了新的基于代数效应的范式。
特性
- 代数数据类型
- 空安全,基于ADT模型的语言严格遵循空安全规则
- 代数子类型
- 受限的传统面向对象范式
- 代数效应(计划中)
- 渐进式结构类型
- 局域类型推导
- AST 宏
- 包隔离级别的多阶段编程
工具和社区
- Jupyter Runner:交互式执行环境
- Idea Intellij:IDEA 支持
- AST Visitor:AST 定义和打印
语言参考
基本概念
习数据控制流
- If: 条件语句
- Switch: 跳转表
- While Loop: 条件循环
- For Loop: 迭代器
- Return, Break and Continue: 控制流
- Try, Catch and Resume: 控制流
自定义代数结构
class
: 基于引用的积类型structure
: 基于值的积类型interface
: 接口与子类型多态trait
: 特质系统enumerate
: 相容编码flags
: 互斥编码unite
: 不交并, 和类型Extractor: 提取器模式
Constructor and Builder: 构造器模式
Pattern Match: 模式匹配
Define Effect
Io
effect andLogging
effectGenerics, covariance, contravariance and invariance
Type conversion, type reinterpretation and type transmutation
Iterators and Generators
Closures, callbacks and asynchronous programming
Raw pointers and unsafe programming
Value types and the stack allocation
Macro and package isolation compile