Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il existe deux expressions disponibles qui concluent l’exécution de la sous-routine actuelle ou du programme ; les expressions return
et fail
. En règle générale, les appelants peuvent mettre fin à leur exécution avant d’exécuter toutes leurs instructions avec une expression return
ou fail
. Une expression return
termine simplement l’exécution de l’appelant actuel, tandis qu’une fail
met fin à l’exécution de l’ensemble du programme et entraîne une erreur d’exécution.
Expression de retour
L’expression return
quitte l’appelant actuel et retourne le contrôle à l’appelé. Il modifie le contexte de l’exécution en faisant apparaître une trame de pile.
L’expression retourne toujours une valeur au contexte de l’appelé ; il se compose du mot clé return
, suivi d’une expression du type approprié. La valeur de retour est évaluée avant que toutes les actions de fin soient effectuées et que le contrôle soit retourné. Les actions de fin incluent, par exemple, le nettoyage et la libération des qubits alloués dans le contexte de l’appelant. Lors de l’exécution sur un simulateur ou un validateur, les actions de fin incluent souvent des vérifications liées à l’état de ces qubits. Par exemple, ils peuvent vérifier s’ils sont correctement démêlés de tous les qubits qui restent en direct.
L’expression return
à la fin d’un appelant qui retourne une valeur Unit
peut être omise. Dans ce cas, le contrôle est retourné automatiquement lorsque toutes les instructions se terminent et que toutes les actions de fin sont effectuées. Les appelants peuvent contenir plusieurs expressions return
, même si l’implémentation adjointe pour les opérations contenant plusieurs expressions return
ne peut pas être générée automatiquement.
Par exemple
return 1;
ou
return ();
Expression d’échec
L’expression fail
termine entièrement le calcul. Il correspond à une erreur irrécupérable qui abandonne le programme.
Il se compose du mot clé fail
, suivi d’une expression de type String
.
Le String
doit fournir des informations sur l’échec rencontré.
Par exemple
fail "Impossible state reached";
ou, à l’aide d’une chaîne interpolée ,
fail $"Syndrome {syn} is incorrect";
En plus de la String
donnée, une expression fail
collecte idéalement et permet la récupération d’informations sur l’état du programme. Cela facilite le diagnostic et la correction de la source de l’erreur, et nécessite la prise en charge du runtime et du microprogramme en cours d’exécution, qui peuvent varier entre différentes cibles.