2015-12-30 1 views
0

J'essaie de comprendre comment l'utilisateur entre une phrase, puis se scindera en Prolog en mots séparés. Par exemple, utilisateur saisit cette phrase: « ordinateur se compose de matériel » Je veux diviser cette phrase: « ordinateur », « consiste », « de » et « matériel »Comment diviser des chaînes dans Prolog

Quelqu'un peut-il s'il vous plaît expliquer comment l'utilisateur entre la phrase, puis le diviser en Prolog?

+1

S'il vous plaît montrer la solution vous avez essayé et le problème spécifique que vous avez rencontré. – lurker

+0

À tout le moins, soyez un peu plus précis sur la façon dont vous voulez interagir avec le programme: comment l'appelez-vous? quelle sortie attendez-vous? Quelle est l'entrée valide et qu'est-ce qui ne l'est pas? Il pourrait également aider à comprendre [comment poser une bonne question] (http://stackoverflow.com/help/how-to-ask). –

Répondre

1

Si la phrase est contenue dans une liste (par exemple, [ordinateur, se compose, de, du matériel]) vous pouvez ensuite utiliser:

split(L,Result) :- 
    splitacc(L, [], Result). 
splitacc([], Acc, Result) :- 
    Result=Acc. 
splitacc([H|T], Acc, Result) :- 
    append(Acc, [[H]], NewAcc), 
    splitacc(T, NewAcc, Result). 

Par exemple:

?- split([a, computer, consists, hardware],L). 
L = [[a],[computer],[consists],[hardware]] ? 
+0

merci mais je veux savoir comment l'utilisateur saisit phrase puis diviser en utilisant prolog par exemple dans l'écran de requête:? - ce qui est ordinateur? Utilisateur devrait répondre à cette question de cette façon: un ordinateur se compose de matériel.après l'utilisateur entre cette réponse, le prologue se divise en [a], [ordinateur], [consiste], [de], [matériel]. – student