V I S U A L I Z Z A D I S C U S S I O N E |
antogrim2 |
Inserito il - 17/12/2008 : 19:37:57 Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
oppure cè la possibilità del char matching, cioè
[a]<[b] mi restituisce true
se provo ad inserire una string tra le quadre mi da errore perchè si aspetta un numero. Anche se inserisco stringa tra apici o doppi apici.
Possibile che il Prolog non dia possibilità di un completo String-matching?
se qualkuno mi aiuta sarei felice.Grazie Ciao |
5 U L T I M E R I S P O S T E (in alto le più recenti) |
feeb |
Inserito il - 17/12/2008 : 23:32:03 Citazione: Messaggio inserito da antogrim2
Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
e il prolog non ha tutti i torti se A e B sono due stringhe (ad esempio "mario" e "saverio"), in base a quale criterio dovrebbe dirti se A > B o viceversa?
in base alla codifica ASCII magari...il clips lo fa...
in quel caso è semplicissimo: ti basta usare atom_codes/2 (su SWI-Prolog) o un predicato equivalente per convertire un atomo in una lista di codici ASCII (e viceversa) per trasformare le due stringhe in due liste e scorrerle iniziando dalla testa per cercare il primo elemento che differisce (se la lunghezza delle due liste è la stessa)
nota: in questo modo, 1024x1024 < 1500x0001
potrebbe essere una soluzione, ci devo provare...solo che non sempre le 2 stringhe sono della stessa lunghezza...cioè 1280x1024 e 1024x768 ad esempio...
in quel caso la stringa più lunga >= quella più corta |
antogrim2 |
Inserito il - 17/12/2008 : 23:27:48 Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
e il prolog non ha tutti i torti se A e B sono due stringhe (ad esempio "mario" e "saverio"), in base a quale criterio dovrebbe dirti se A > B o viceversa?
in base alla codifica ASCII magari...il clips lo fa...
in quel caso è semplicissimo: ti basta usare atom_codes/2 (su SWI-Prolog) o un predicato equivalente per convertire un atomo in una lista di codici ASCII (e viceversa) per trasformare le due stringhe in due liste e scorrerle iniziando dalla testa per cercare il primo elemento che differisce (se la lunghezza delle due liste è la stessa)
nota: in questo modo, 1024x1024 < 1500x0001
potrebbe essere una soluzione, ci devo provare...solo che non sempre le 2 stringhe sono della stessa lunghezza...cioè 1280x1024 e 1024x768 ad esempio... |
feeb |
Inserito il - 17/12/2008 : 23:04:05 Citazione: Messaggio inserito da antogrim2
Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
e il prolog non ha tutti i torti se A e B sono due stringhe (ad esempio "mario" e "saverio"), in base a quale criterio dovrebbe dirti se A > B o viceversa?
in base alla codifica ASCII magari...il clips lo fa...
in quel caso è semplicissimo: ti basta usare atom_codes/2 (su SWI-Prolog) o un predicato equivalente per convertire un atomo in una lista di codici ASCII (e viceversa) per trasformare le due stringhe in due liste e scorrerle iniziando dalla testa per cercare il primo elemento che differisce (se la lunghezza delle due liste è la stessa)
nota: in questo modo, 1024x1024 < 1500x0001 |
antogrim2 |
Inserito il - 17/12/2008 : 22:31:11 Citazione: Messaggio inserito da feeb
Citazione: Messaggio inserito da antogrim2
Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
e il prolog non ha tutti i torti se A e B sono due stringhe (ad esempio "mario" e "saverio"), in base a quale criterio dovrebbe dirti se A > B o viceversa?
in base alla codifica ASCII magari...il clips lo fa... |
feeb |
Inserito il - 17/12/2008 : 22:23:37 Citazione: Messaggio inserito da antogrim2
Ciao a tutti... sto realizzando il mio sistema esperto in prolog e non riesco a capire come si può fare (e soprattutto SE si può fare) il confronto tra 2 stringhe alfanumeriche... ad esempio
io devo ricercare tutti i pc con risoluzione >= di quella inserita da prompt, supponiamo 1024x768.
Il Clips mi dava la possibilità tramite una str-compare di effettuare, ad esempio, l'operazione 1280x1024 >= 1024x768...
il prolog funziona solo se faccio X == Y ma se provo a fare X =< Y mi dice che l'operatore =< è per numeri...
e il prolog non ha tutti i torti se A e B sono due stringhe (ad esempio "mario" e "saverio"), in base a quale criterio dovrebbe dirti se A > B o viceversa? |
|
|