Je cherche à convertir une chaine en un terme.
Comment puis-je faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chaine_to_terme('chaine',Res). Res = chaine
Je cherche à convertir une chaine en un terme.
Comment puis-je faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chaine_to_terme('chaine',Res). Res = chaine
En swi-prolog, il me semble que tu peux utiliser atom_chars/2 ou atom_codes/2.
Le deuxième argument peut être soit sous forme de chaîne, soit sous forme de liste de caractères, soit une liste de codes.
Exemples :
atom_chars/2 a exactement le même comportement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ?- atom_codes(Res, "toto"). Res = toto ?- atom_codes(Res, [t, o, t, o]). Res = toto ?- atom_codes(Res, [97, 98, 97, 98]). Res = abab
En fait l'idée c'est que je voudrais pouvoir mettre une majuscule.
Avec atom_codes ça me retourne 'Nom'. Je ne peux pas me servir de 'Nom' car c'est une constante et j'ai besoin d'une variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 predicat('nom',Res). Res = Nom
Je ne comprends pas pourquoi tu veux donner un nom particulier à une variable... En Prolog, cela n'a aucun sens (le nom sera perdu à la prochaine unification).
Je dois implémenter un pseudo-sql en Prolog.
exemple de table:
Cela veut dire que j'ai une table etudiant avec 3 champs(num_carte,nom,prenom) et ma clé primaire est num_carte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part schema(etudiant,[num_carte,nom,prenom],3,[num_carte,cp])
Les diverses occurences de la table etudiant sont de cette forme:
Imaginons que je veuille faire un "select nom from etudiant" ce qui revient à taper etudiant(_,Nom,_) avec prolog.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 etudiant(1234, dupond, pierre). etudiant(1324, durand, celine).
Cela va me donner:
Seulement la contrainte que j'ai pour l'implementation c'est d'avoir un predicat de cette forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ?-etudiant(_,Nom,_). Nom = dupond; Nom = durand; No.
select(Relation, Attributs_recherches, Attributs_values).
Ce qui me donne:
Pour l'instant j'arrive à avoir etudiant(_G152,'Nom',_G584).
Code : Sélectionner tout - Visualiser dans une fenêtre à part select(etudiant,[nom],[]).
Ce qui ne marche pas. J'ai voulu transformer mon nom en Nom. Si tu as une meilleure solution pour placer une variable à la place de 'Nom' je suis preneur.
EDIT: j'oublie de préciser que cela doit marcher avec d'autres tables que l'on aurait ecrite avec:
schema(Nom_Relation,ListeAttributs,NbreAttributs,Contraintes)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager