mac4
(cfr.programma simile scritto con prolog su dos-windows)
con install_menu appare menù a tendina con varie opzioni
/* latino4 */ /* coniugazione indicativo verbi latini prima coniugazione */
'<LOAD>'(X):-esegue.
esegue:- install_menu(scelta,[inizio,dati,presente,imperfetto,futuros, perfetto,pperfetto,anteriore,fine]).
scelta(inizio):-cancella. scelta(dati):-cdati. scelta(presente):-cpresente. scelta(imperfetto):-cimperfetto. scelta(futuros):-cfuturos. scelta(perfetto):-cperfetto. scelta(pperfetto):-cpiucheperfetto. scelta(anteriore):-canteriore. scelta(fine):-uscita.
cancella:- whide(latino2),wfront(user).
cdati:- prompt_read(['scrivi infinito prima coniugazione '],Infinito),nl, stringof(Lista2,Infinito), reverse(Lista2,Lista1), remove(_,Lista1,R1), remove(_,R1,R2), remove(_,R2,R3), reverse(R3,Radice1), stringof(Radice1,Radice), remember(forme,[Radice,Infinito]), prompt_read(['scrivi perfetto indicativo '],Perfetto),nl, stringof(Lista3,Perfetto), reverse(Lista3,Lista4), remove(_,Lista4,Radp), reverse(Radp,Rad1), stringof(Rad1,Rperfetto), remember(forma,[Rperfetto|Infinito]).
uscita:- message('premi ENTER '),wfront(latino2).
cpresente:-coniugapresente. coniugapresente:- recall(forme,[Radice|Infinito]), write(['presente indicativo del verbo:',Infinito]),nl, concat(Radice,o,F1),write(F1),nl, concat(Radice,as,F2),write(F2),nl, concat(Radice,at,F3),write(F3),nl, concat(Radice,amus,F4),write(F4),nl, concat(Radice,atis,F5),write(F5),nl, concat(Radice,ant,F6),write(F6),nl, write('-----------------------------'),nl.
cimperfetto:-coniugaimperfetto. coniugaimperfetto:- recall(forme,[Radice|Infinito]), write(['imperfetto indicativo del verbo:',Infinito]),nl, concat(Radice,abam,F1),write(F1),nl, concat(Radice,abas,F2),write(F2),nl, concat(Radice,abat,F3),write(F3),nl, concat(Radice,abamus,F4),write(F4),nl, concat(Radice,abatis,F5),write(F5),nl, concat(Radice,abant,F6),write(F6),nl, write('-----------------------------'),nl.
cfuturos:-coniugafuturos. coniugafuturos:- recall(forme,[Radice|Infinito]), write(['futuro semplice del verbo:',Infinito]),nl, concat(Radice,abo,F1),write(F1),nl, concat(Radice,abis,F2),write(F2),nl, concat(Radice,abit,F3),write(F3),nl, concat(Radice,abimus,F4),write(F4),nl, concat(Radice,abitis,F5),write(F5),nl, concat(Radice,abant,F6),write(F6),nl, write('-------------------------------'),nl.
cperfetto:-coniugaperfetto. coniugaperfetto:- recall(forma,[Rperfetto|Infinito]), write(['perfetto indicativo del verbo:',Infinito]),nl, concat(Rperfetto,i,F1),write(F1),nl, concat(Rperfetto,isti,F2),write(F2),nl, concat(Rperfetto,it,F3),write(F3),nl, concat(Rperfetto,imus,F4),write(F4),nl, concat(Rperfetto,istis,F5),write(F5),nl, concat(Rperfetto,erunt,F6),write(F6),nl, write('-------------------------------'),nl.
cpiucheperfetto:-coniugapiucheperfetto. coniugapiucheperfetto:- recall(forma,[Rperfetto|Infinito]), write(['perfetto indicativo del verbo:',Infinito]),nl, concat(Rperfetto,eram,F1),write(F1),nl, concat(Rperfetto,eras,F2),write(F2),nl, concat(Rperfetto,erat,F3),write(F3),nl, concat(Rperfetto,eramus,F4),write(F4),nl, concat(Rperfetto,eratis,F5),write(F5),nl, concat(Rperfetto,erant,F6),write(F6),nl, write('-------------------------------'),nl.
canteriore:-coniugaanteriore. coniugaanteriore:- recall(forma,[Rperfetto|Infinito]), write(['futuro anteriore del verbo:',Infinito]),nl, concat(Rperfetto,ero,F1),write(F1),nl, concat(Rperfetto,eris,F2),write(F2),nl, concat(Rperfetto,erit,F3),write(F3),nl, concat(Rperfetto,erimus,F4),write(F4),nl, concat(Rperfetto,eritis,F5),write(F5),nl, concat(Rperfetto,erunt,F6),write(F6),nl, write('-------------------------------'),nl.
infinito
perfetto
coniuga perfetto
coniuga fururo anteriore
coniuga imperfetto
coniuga imperfetto e uscita