47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
%%%%
|
|
%%%% Decision of the direction by a coin tossing -- direction.psm
|
|
%%%%
|
|
%%%% This program has just one random switch named `coin'.
|
|
%%%%
|
|
%%%% Copyright (C) 2004,2006,2008
|
|
%%%% Sato Laboratory, Dept. of Computer Science,
|
|
%%%% Tokyo Institute of Technology
|
|
|
|
%%-------------------------------------
|
|
%% Sample session
|
|
%%
|
|
%% (1) Load this program:
|
|
%% ?- prism(direction).
|
|
%%
|
|
%% (2) Get a sample:
|
|
%% ?- sample(direction(D)).
|
|
%%
|
|
%% (3) Display the information about the switch `coin':
|
|
%% ?- show_sw.
|
|
%%
|
|
%% (4) Set the probability distribution to the switch `coin':
|
|
%% ?- set_sw(coin,[0.7,0.3]).
|
|
%%
|
|
%% (5) Display the switch information again with the distribution set
|
|
%% at step 4:
|
|
%% ?- show_sw.
|
|
%%
|
|
%% (6) Get a sample again with the distribution set at step 4:
|
|
%% ?- sample(direction(D)).
|
|
%%
|
|
%% [Note1]
|
|
%% Since 1.9, without any extra settings, the probability distribution
|
|
%% of every switch is set to a uniform distribution.
|
|
%%
|
|
%% [Note2]
|
|
%% If you go (3) with skipping (2), nothing should be displayed. This
|
|
%% is because any random switch will not be registered by the system until
|
|
%% it is explicitly used or referred to.
|
|
|
|
values(coin,[head,tail]). % The switch `coin' takes `head' or `tail' as its value
|
|
|
|
direction(D):-
|
|
msw(coin,Face), % Make a coin tossing
|
|
( Face==head -> D=left ; D=right). % Decide the direction according to
|
|
% the result of coin tossing
|