So not too long ago John Carmack tweeted that he “dumped the C++ server I wrote for a new one in Racket”.
This created some nice discussions on Hacker News, along with a link to a nice document about Racket macros.
However, that seems to have sparked off some interest in Racket, as few threads on the language start to pop up on the site ever since (for example, here, here, and here). One of these contains a link to a blog post by Clojure’s Leiningen author describing his experience with Racket.
If this leads to a renewed interest in Racket, Common Lisp, and Lisp in general, then this is a very good thing. These languages are so powerful and so underrate, it’s about time they get the recognition they deserve.
In my last post on Common Lisp, I mentioned how I learned that Common Lisp has a gradual/optional typing. Indeed, that was one of the many reasons that piqued me interested in the language.
However, it turns out that finding documentations or tutorials that teach how to use Common Lisp type declarations is harder than expected.
So the following is a hodgepodge collection of links related to type and type declarations in Common Lisp that I have found to be useful.
First is a paper (PDF) by Didier Verna. The paper describes how to use static typing to make Lisp as fast as C, and contains great examples on how to use type declarations to speed up Lisp code, as well as other optimization techniques, such as profiling, using the correct data structures, etc.
Next is a 3 parts blog posts by Patrick Stein. These articles chronicle how Patrick learned how to use compilers and type declarations to speed up matrix multiplications in Common Lisp.
And last but not least is this little Q&A thread on StackOverflow, which contains concise examples of how to declare as well as check the types.
And of course, the ever-useful Common Lisp HyperSpec contains plenty of references information on type specifiers, a type declaration, and a declare expression.
Because publish or perish is still a fact of life in 2014 for all aspiring researchers, here are some publishing venues for papers in the field of multi-agent systems.
For conferences, there is the International Conference on Autonomous Agents and Multiagent Systems (AAMAS), sponsored by t
The Multi-agent Systems and Optimization Research Group in the Research Institute IRTES, at the Université de Technologie de Belfort-Montbéliard also have an excellence page that lists all the journals and conferences that accept works in the field of multi-agent systems.
Since it looks like that there is a very high chance that I’ll have to use Markov Chains in my research, I’ve been searching and reading up on the subject.
The following are the links & articles on Markov Chains that I’ve found useful.
- Markov Chains, a visual explanation is a great introduction to Markov Chains. Like its name implies, the blog post contained a lot of great interactive graphs that offer immense help in understanding what Markov Chains are and how they work. Also, the Hacker News and Reddit threads on the post also contain a lot of interesting discussions, my favorite of which is the following short and concise explanation of what is a Markov Chain: “Markov chain = probabilistic (finite) state machine”.
- Analysis of Chutes and Ladders and Candyland are a great pair of articles that show how to use Markov Chains to analyze complex games of chance.
- The Model Thinking course on Coursera has a nice set of video lectures on the subject.
- This Stack Overflow thread describes how Markov Chains and (finite) state machines are related (in short, Markov Chains can be represented by (finite) state machines).