epiphany
88888 Dihedral
dihedral88888 at googlemail.com
Sun Apr 28 17:14:14 EDT 2013
Roy Smith於 2013年4月25日星期四UTC+8上午7時50分33秒寫道:
> I discovered something really neat today.
>
>
>
> We've got a system with a bunch of rules. Each rule is a method which
>
> returns True or False. At some point, we need to know if all the rules
>
> are True. Complicating things, not all the rules are implemented.
>
> Those that are not implemented raise NotImplementedError.
>
>
>
> We used to have some ugly logic which kept track of which rules were
>
> active and only evaluated those.
>
>
>
> So, here's the neat thing. It turns out that bool(NotImplemented)
>
> returns True. By changing the unimplemented rules from raising
>
> NotImplementedError to returning NotImplemented, the whole thing becomes:
>
>
>
> return all(r() for r in rules)
Problems of rules in Boolean algebra or the bi-level logic
inference engine in AI were all solved long time ago
in the text book about AI.
There are some variations about the multi-level or
the continuous level logic engine with some new phases
in Fuzzy theory in the expert system.
A dynamical typed language is better to be used in this kind of
problems.
More information about the Python-list
mailing list