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. Corentin. On 4/15/10, Brent Yorgey <byor...@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@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe