Autore |
Discussione |
|
antogrim2
Utente medio
|
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
|
|
feeb
Cantù Che Conta Col Cayenne
Prov.: Zara
|
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? |
http://www.avaaz.org/it/ - http://www.flickr.com/photos/dimethyltryptamine/ |
|
|
antogrim2
Utente medio
|
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
Cantù Che Conta Col Cayenne
Prov.: Zara
|
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 |
http://www.avaaz.org/it/ - http://www.flickr.com/photos/dimethyltryptamine/ |
Modificato da - feeb in data 17/12/2008 23:05:33 |
|
|
antogrim2
Utente medio
|
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
Cantù Che Conta Col Cayenne
Prov.: Zara
|
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 |
http://www.avaaz.org/it/ - http://www.flickr.com/photos/dimethyltryptamine/ |
Modificato da - feeb in data 17/12/2008 23:35:11 |
|
|
|
Discussione |
|
|
|