Bayesian Erlang: Help with translation from Prolog

Nick Linker xlcr@REDACTED
Fri Jan 13 04:41:03 CET 2006


Joel Reymont wrote:

> This was an easy one. I'm wondering if backtracking can be  
> implemented by catching pattern-matching exceptions, though. What do  
> you think?
>
> -module(p).
>
> -compile([export_all]).
>
> p({patient, cancer}) -> 0.1;
> p({patient, smoker}) -> 0.5.
>
> cp({patient, smoker}, {patient, cancer}) -> 0.8;
> cp(_, _) -> none.
>
> getp({A, B})
>   when is_tuple(A),
>        is_tuple(B) ->
>     case cp(A, B) of
>     none ->
>         Pba = cp(B, A),
>         Pa = getp(A),
>         Pb = getp(B),
>         Pba * Pa / Pb;
>     X ->
>         X
>     end;
>
> getp(A) -> p(A).
>

Sorry for the following dumb questions: why do you need Prolog? has the 
Prolog language any significant advantages comparing to other languages?

With best regards,
Linker Nick.



More information about the erlang-questions mailing list