主要观点:Effekt 是研究级语言,使用有风险,仍在大力开发中,欢迎尝试并反馈经验。
关键信息:
- 提供多种开始使用 Effekt 语言的途径,如快速指南、在线尝试、观看演讲、阅读论文等。
- 支持词汇效应处理(effect handlers),可类比异常处理,能处理和恢复程序,且类型安全。
- 有静态效应系统保证效应处理的安全性,效应是类型的一部分,未处理效应会导致静态类型错误。
- 具备轻量级效应多态性(contextual effect polymorphism),高阶函数可使用不同效应的参数函数,块参数和结果类型可不提及效应,但使用效应的块需在调用点处理。
重要细节: - 快速指南介绍了不同方面的特色,如effect handlers、effect safety、effect polymorphism。
- 在线编辑器可用于玩耍该语言,Youtube 播放列表收集了关于 Effekt 语言各方面的演讲和演示,学术论文可帮助理解理论和概念。
- 在效应处理示例中,通过
yield
定义效果签名,do yield(42)
类似抛出异常,while
循环处理yield
效果,example
函数类型安全。 - 在效应安全示例中,
raise
效应用于表示出错,divide
函数返回类型表明需处理raise
效应,未处理会导致静态类型错误,可通过try...with
处理。 - 在效应多态性示例中,
map
函数可用于不同块参数,包括不使用效应、使用内置效应(println
)、使用用户定义效应(raise
),最后一个示例因有未处理效应无法运行,使用try...with
可处理块中的raise
效应。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。