[Haskell-cafe] Nomic game in Haskell

Dupont Corentin corentin.dupont at gmail.com
Thu Apr 15 05:40:46 EDT 2010

Yes indeed, Nomic couldn't be fully coded, only a subset of it could be.
Rules that are outside of the box cannot be expressed, the goal is, to
have the largest box possible!

Your rule:
* Players must stand when proposing new rules.
couldn't be coded directly, of course, since the computer has no
sensor to detect the position of player ;)

But it could be indirectly. Your rule could be coded like that:
Full rule tiltle: "Players must stand when proposing new rules"
Code when filtering a proposed rule: A question is asked to all
players except the author of the rule: "Does Player X stood when he
proposed this rule?" A vast majority of "Yes" must be acknowlegded to
accept the rule.

On the other hand, if we choose not to interpret the rules, the
program could just be a configuration management system for rules.
It could be a web site that maintain active rules, allow player voting etc.


On 4/15/10, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
> 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
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list