Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jarshwah/missionaries-cannibals-20-languages

I keep thinking "I want to learn language X", but never know what to implement. So I'm setting myself a challenge to implement a basic AI search space algorithm in (starting with) 20 different languages.
https://github.com/jarshwah/missionaries-cannibals-20-languages

Last synced: about 2 months ago
JSON representation

I keep thinking "I want to learn language X", but never know what to implement. So I'm setting myself a challenge to implement a basic AI search space algorithm in (starting with) 20 different languages.

Awesome Lists containing this project

README

        

Implement 'Missionaries and Cannibals' in 20 different languages
===================================

http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem

I keep thinking "I want to learn language X", but never know what to implement. So I'm setting myself a
challenge to implement a basic AI search space algorithm in (starting with) 20 different languages.

I wanted a 'game-like' challenge but nothing that dealt with graphics (a whole other challenge right there). I also
wanted something a little more advanced than hello world - algorithms and data structures mainly. Anything too
complicated (or even slightly complicated really) and I'm likely to put it off.

The added benefit is that I've implemented this before in Uni about 8 years ago using Lisp, so I know the problem
and the general solution. I can focus more on the language rather than the problem.

Languages I know:

* ~~Python~~
* Javascript
* Java
* C# (and VB but I'll skip that)
* PHP

Languages I've tried:

* Common Lisp
* C
* C++
* ~~Ruby~~
* Lua

Languages that seem interesting:

* ~~Go~~
* F#
* Haskell
* Clojure
* Scala

Other:

* Objective C
* Erlang
* D
* ML (of some description.. OCaml maybe)
* Bash

That seems like a good list to start with. I'll require myself to do one from each category before
attempting another in the same category. Otherwise, I'm likely to implement the ones in the
languages I know, then get lazy and not do the rest, completely ruining the point of this.

After round 1 (the first 4 languages), I will re-assess whether 'missionaries and cannibals' is the right
problem to be moving forward with.