Un collègue a déclaré avoir entendu parler d'une langue qui n'avait pas le concept de "si". Est-ce possible? Si oui, quelle langue est-ce? P>
5 Réponses :
Je crois que une langue doit avoir des moyens de sélection, afin d'être Turing-complète a>. Cependant, cela signifie que ce ne serait pas obligé de devenir votre formulaire classique if-relevé. P>
Probablement l'exemple le plus familier serait des langages d'expression réguliers. (A | B *) prend une décision basée sur ce qui est sur les côtés opposés de ce | code>. Pas exactement une déclaration "si". P>
Il existe des langues logiques composées de déclarations. Les résultats à une requête sont une évaluation logique qui vérifie si le résultat peut être supposé par le groupe de règles «codé». P>
regarder prolog par exemple. p>
Outre peut-être prolog, je ne connais aucune langue spécifique, mais je peux penser à quelques façons d'une langue sans si les déclarations em> peuvent travailler. En fait, vous n'avez pas besoin de constructions de boucle non plus. Vous avez évidemment besoin d'une bonne façon de branches conditionnelles et de boucler. Si, par exemple, vous avez eu les caractéristiques suivantes: fonctions em>, modèle de style ML correspondant à des arguments de la fonction em> et optimisation des appels queue em>, vous pouvez programmer sans ifs ou boucles. P> [function(){else-clause}, function(){then-clause}][condition]()
SmallTalk, considéré comme une langue "véritablement" orientée objet, n'a pas de déclaration "si", et il n'a pas de déclaration "pour", pas de déclaration "tandis que". Il y a d'autres exemples (comme Haskell) mais c'est un bon. Source: sans ifs P>
SmallTalk fait cependant, définir iftrue: code> et
iffalse: code>, ainsi que
whiletrue: code> et
tandis quefalse: code>
La programmation de modèle C ++ n'a pas de construction "si" mais est Turing-complète via une spécialisation de modèle: de Article de Wikipedia sur la métaprogrammation de modèle p> p>
Qu'entendez-vous par
ifs code>? Une langue peut ne pas avoir d'opérateur code> explicite si code>, mais chaque langue doit avoir une manière i> moyen de ramification d'un seul code à deux autres morceaux de code, sinon chaque entrée à Un programme donnerait toujours la même sortie.
Ma réponse a-t-elle fourni ce que vous recherchiez? Si oui, veuillez la marquer comme la réponse à votre question
Voir aussi Can-YOU-ERIT-ERITE-NEAL-ALGORITHM-SANS- an-if-énoncé