4 karma · joined July 19, 2015
Aver is an experimental statically typed language for AI-written, human-reviewed code.
What’s different is that intent (`?`), explicit effects (`!`), design decisions (`decision`), and behavior checks (`verify`) are part of the source itself rather than split across code, comments, docs, and tests.
If you want to evaluate it quickly, I’d suggest these places:
- medium-sized example: https://github.com/jasisz/aver/tree/main/projects/workflow_e...
- Lean proof export for the pure subset: https://github.com/jasisz/aver/tree/main/docs/lean.md
- examples of effectful programs / replay: https://github.com/jasisz/aver/tree/main/examples/services
The main question I’m testing is whether this deserves to be a language, or whether the same idea should just be tooling and conventions on top of an existing language.
I think this is kind of a clear statement that original paper (and after it a lot of writing on the topic) may be lacking. Of course people used this simple generalization before and it is pretty straightforward, but it is not that obvious at a first glance. And I've seen quite a lot of code examples, images explaining UCT for games and articles that were just not saying a word on this. Or even worse - just doing it wrong for multiplayer games.
Choice of action is a different topic, as I remember correctly there was also a paper proving that win rate and most robust branch are in the end performing the same ;)
Hope you will continue this series, because it is really good and code examples are really nice!
But it is not so easy to know about this, e.g. this is a very recent change to wikipedia page on the topic https://en.wikipedia.org/w/index.php?title=Monte_Carlo_tree_... and very often people writing on the topic are not pointing this out at all, which I find very strange and misleading.
Also in the classic MCTS you should select move which has most visits, not the one with the highest percentage of wins.