一个微软研究院的编程语言[Koka](
https://github.com/koka-lang/koka),函数式强类型,用 algebraic effect 管理任意的副作用(可用来实现协程和 async/await 等等),它非常漂亮和统一,在语法和语义上都非常优雅,体现在它有一个非常小的核心语言子集,其它语言构造都可以转化成核心语言; while 只是一个普通的标准库函数;所有圆括号永远先求值而所有花括号都会后续求值零次/一次/多次(作为匿名函数);使用类似 Python 的缩进来省略 C 风格的花括号;和 Rust 一样函数块的最后一个表达式作为返回值;函数式语言标配的类型推导和模式匹配;所有 a.f 都等价于 f(a) ......
这个编程语言属于研究性质,可能对于缺少函数式编程背景的人来说有点难懂,而且资料较少,需要参考它的论文、文档、示例还有测试用例,一个例子如下:
```
// A custom generator effect (which is polymorphic)
effect yield<a>
fun yield(x: a): ()
// Traverse a list and yield the elements (which is also polymorphic) with 'yield' effect
fun traverse(xs: list<a>): yield<a> ()
match xs
Cons(x,xx) -> { yield(x); traverse(xx) }
Nil -> ()
fun main(): console ()
with fun yield(i: int) // Handles the 'yield' effect
println("yielded " ++ i.show) // Printing requires 'console' effect
[1,2,3].traverse
```