
On Wed, Apr 14, 2010 at 09:14:18PM +0200, Dupont Corentin wrote:
Hello Café, do you know Nomic?
It's a fabulous and strange game where you have the right to change the rules in the middle of the game! In fact, changing the rules is the goal of the game. Changing a rule is considered as a move. Of course even that could be changed!
www.nomic.net
I'm wondering if it could be possible to implement a Nomic (or an helper for the game) in Haskell. Haskell seems appropriate for that, since functions are first order objects, and Haskell is good at DSLs.
I don't think you could actually implement Nomic in the way you describe, because any system you come up with will necessarily place restrictions on what sorts of rules you are able to represent. Much of the fun of Nomic lies in coming up with new rules that are completely outside the box. For example, how would you encode a rule like * Players must stand when proposing new rules. or * Rules which do not mention other rules shall remain in effect until such time as the mobile telephone of the Grand Counselor rings. You get the idea. However, implementing some sort of system for encoding certain types of rules, and checking that they are valid/consistent/etc. sounds like it could be a fun project from which you would probably learn a lot! Essentially, you would be designing a syntax for rules, and a type system for ensuring that rules are valid or used in valid ways. It wouldn't be Nomic, but it could be something fun. -Brent