un script fonctionne avec succès par SWI-Prolog 5.11.11 sur système Linux, mais pas aussi bien sur les fenêtres système par Swi-Prolog 5.6.48Écrire dans le fichier | Swi-Prolog | Windows
main :-
open('output.txt',write,OS),
elements(Points),
get_set(Eq, Points),
alpha_isotone(Eq, Points),
write(OS,Eq),nl(OS),
false,
close(OS).
Problème - sous les fenêtres fichier sortie .txt est vide et toutes les informations restent dans le pseudo-terminal. Sous Linux, cela fonctionne bien, mais la fin du fichier est souvent manquée. Comme
>> tail output.txt
[6,1,3,6,6,6]
[6,1,6,6,6,6]
[6,3,1,6,6,6]
[6,3,3,6,3,6]
[6,3,3,6,5,6]
[6,3,3,6,6,6]
[6,3,6,6,6,6]
[6,6,1,6,6,6]
[6,6,3,6,6,6]
[6,6,6,
Qu'est-ce que je fais mal? (à l'exception de mon anglais)
Comme écrit, la fermeture (OS) ne peut pas être atteinte; l'objectif ** main/0 ** échoue juste avant de l'atteindre. La fermeture (OS) ne devrait-elle pas être faite dans une clause alternative? – hardmath