J'écris un programme qui ajoute les numéros d'une liste fournie par l'utilisateur, mais, dans le cas où il y a une chaîne, il me donne une erreur. Comment vérifier si un élément de la liste est une chaîne ou un nombre? ThanxComment vérifier une variable est une chaîne ou un nombre dans prolog?
Répondre
number/1
vous dira si un objet est un nombre. atom/1
vous dira si un objet est un atome, ce que je suppose être ce que vous entendez par une chaîne. Si vous vouliez dire une vraie chaîne (liste de codes de caractères), alors
fera l'affaire.
Tous ces éléments échoueront en présence de variables.
Si votre liste contient des chaînes que vous souhaitez lire les numéros:
...maplist(convert_element, List, OnlyNumbers),
convert_element(Num, Num) :- number(Num).
convert_element(String, Num) :- number_codes(Num, String).
convert_element(Unknown, 0) :- throw(unknown(Unknown)).
throw
pourrait être remplacé par un message ...
L'objectif 'convert_element (1, N)' réussit avec 'N = 1' mais produira finalement l'erreur' unknown (1)' en cas d'échec. Vous voulez une construction conditionnelle ou une négation pour couvrir cela. – false
- 1. shell - Comparer une chaîne à une variable (chaîne ou nombre)
- 2. Vérifier si la variable est un nombre ou un tableau
- 3. Comment vérifier si une chaîne dans .NET est un nombre ou non?
- 4. Vérifier si une chaîne est un nombre sur l'iPhone
- 5. comment vérifier un paramètre passé dans une fonction est une chaîne ou un élément?
- 6. Comment obtenir une variable dans Prolog?
- 7. Comment puis-je vérifier une variable C# est une chaîne vide "" ou null?
- 8. Expressions régulières: Déterminer si une chaîne est un nombre ou une variable
- 9. Comment vérifier si la variable est une chaîne CFString?
- 10. Comment vérifier si une variable de type apply-template est une chaîne ou (éventuellement) un noeud vide dans XSLT?
- 11. python - Comment formater un nombre variable d'arguments en une chaîne?
- 12. Vérifier si l'entrée est une chaîne dans une boucle
- 13. regex pour vérifier si un nombre existe dans une chaîne
- 14. Vérifier si l'entrée est un nombre ou quelque chose d'autre
- 15. Comment vérifier une chaîne si elle est ASCII ou non?
- 16. iOS - comment vérifier si une chaîne est numérique ou non?
- 17. Comment vérifier facilement le nombre d'espaces dans une chaîne?
- 18. comment vérifier une chaîne ruby est une chaîne actural ou une donnée blob telle que l'image
- 19. Comment vérifier si une chaîne est équilibrée?
- 20. Comment vérifier si une chaîne est la variable d'instance d'un objet ou non?
- 21. Comment vérifier si un nombre est inclus dans une plage (dans une instruction)?
- 22. Comment construire une chaîne std :: avec un nombre variable d'espaces?
- 23. Javascript; vérifier si une variable est 1 ou 0
- 24. vérifier si une chaîne est un double
- 25. Comment vérifier si un objet est une chaîne ou un tableau de chaînes dans Java?
- 26. Comment identifier une variable PHP est un tableau ou non
- 27. Batch vérifier si une variable est négative
- 28. Remplacer une chaîne avec un nombre variable d'espaces avec replaceAll
- 29. Comment vérifier si une variable est une valeur numérique?
- 30. Comment vérifier dans JSTL si l'objet est Chaîne ou Collection?
mieux nommer, vu « objet » au début de réponse, pourrait be: forall (membre (X, Liste), nombre (X)) – CapelliC
@chac: Je ne comprends pas complètement ce que vous dites, mais l'idée est que vous appliquez le 'forall' aux éléments * de la liste * auquel fait référence l'OP (car les chaînes de Prolog sont en fait des listes). –
Effectivement, je n'ai pas compris votre indice, merci d'expliquer. – CapelliC