Valkyrie 语言教程

A multi-stage gradual typed language

介绍

Valkyrie 是一种实验性的多阶段编程语言, 结合了函数式编程和面向对象编程的特性,并探索了新的基于代数效应的范式。

特性

  • 代数数据类型
    • 空安全,基于ADT模型的语言严格遵循空安全规则
  • 代数子类型
    • 受限的传统面向对象范式
  • 代数效应(计划中)
  • 渐进式结构类型
    • 局域类型推导
  • AST 宏
    • 包隔离级别的多阶段编程

工具和社区

语言参考

基本概念

习数据控制流

自定义代数结构

  • class: 基于引用的积类型

  • structure: 基于值的积类型

  • interface: 接口与子类型多态

  • trait: 特质系统

  • enumerate: 相容编码

  • flags: 互斥编码

  • unite: 不交并, 和类型

  • Extractor: 提取器模式

  • Constructor and Builder: 构造器模式

  • Pattern Match: 模式匹配

  • Define Effect

  • Io effect and Logging effect

  • Generics, 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