Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
pl:prolog:pllib:interface_2 [2019/06/27 15:50] |
pl:prolog:pllib:interface_2 [2019/06/27 15:50] (aktualna) |
| ====== Interface 2 ====== |
| {{tag>interactive}} |
| ===== Description ===== |
| Program ask user and show possible answer |
| |
| **Source**: Building Expert Systems in PROLOG Publisher |
| ===== Download ===== |
| Program source code: {{interface_2.pl}} |
| ===== Listing ===== |
| <code prolog> |
| size(X):- menuask(size, X, [large, plump, medium, small]). |
| flight(X):- menuask(flight, X, [ponderous, agile, flap_glide]). |
| |
| menuask(A, V, MenuList) :- |
| write('What is the value for'), write(A), write('?'), nl, |
| write(MenuList), nl, |
| read(X), |
| check_val(X, A, V, MenuList), |
| asserta( known(yes, A, X) ), |
| X == V. |
| |
| check_val(X, A, V, MenuList) :- |
| member(X, MenuList), !. |
| |
| check_val(X, A, V, MenuList) :- |
| write(X), write(' is not a legal value, try again.'), nl, |
| menuask(A, V, MenuList). |
| </code> |
| ===== Comments ===== |
| |