Cond Si Et Ou en Raquette
Quelqu'un peut-il expliquer ces fonctions pour moi dans la raquette. Je suis totalement perdu. Merci de m'aider avec quelques exemples. Merci! J'ai juste ne peut pas comprendre ces fonctions pour la vie de moi.
- Les raisons de la fermeture de questions sont les suivantes: "les Questions concernant des problèmes avec le code que vous avez écrit doit décrire le problème — et inclure le code est valide pour la reproduire dans la question elle-même." "Des Questions à poser pour le code doit démontrer une compréhension minimale du problème à résoudre. Inclure les tentatives de solutions, pourquoi ils n'ont pas de travail, et les résultats attendus." Si vous avez fait des expériences avec ces opérateurs, quel genre de résultats que vous obtenez qui n'étaient pas prévus? De quoi vous attendiez-vous? Veuillez être précis.
- Tout cela étant dit, il est important que vous vous familiarisiez avec ces opérateurs, et, je vous suggère de prendre un coup d'oeil à la Raquette de la documentation, en particulier 2.12 Conditions: si, cond, et, et or, qui comprend des descriptions et des exemples de ces opérateurs.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, le Si:
Raquette évalue d'abord si 1 est positif (ce qui est la première expression (positif? 1)). Si elle l'est, retourne 1, sinon, renvoie -1. C'est l'équivalent de c-comme les langages de faire:
Cond est fondamentalement un si qui dispose de plusieurs options. L'équivalent en C-comme langues d'autre-si
Et et Ou sont tout simplement les opérateurs logiques, équivalent à && et || C-comme langues
If
est le turnary de l'opérateur. Il a trois arguments, à moins que le premier argument a une valeur de#f
il sera de retour la valeur du deuxième argument, sinon, la valeur de la troisième argument.OR
accepte un ou plusieurs arguments, il les évalue un à un, de gauche à droite, et retourne la première valeur s'en trouve qui n'est pas#f
, et renvoie#f
si aucun argument n'satisfait à cette condition.AND
accepte un ou plusieurs arguments évaluer un à un, de gauche à droite, si il en trouve une qui est#f
il retourne#f
, sinon, elle retourne la valeur du dernier argument qu'il évalue.COND
accepte un ou plusieurs arguments, chacun avec un ou plusieurs sous-arguments (2) est le nombre habituel, quoique). Il évalue chaque argument de gauche à droite, un à la fois par l'évaluation de la première sous-argument. Si elle n'est pas#f
ensuite, elle évalue chaque de le reste de la sous-arguments (le cas échéant) dans l'ordre et renvoie la valeur du dernier argument. Sinon, il se déplace sur le prochain argument et évalue de la même manière.else
est un spécial sytax à l'intérieur de ces sous-arguments qui est toujours traité comme si il n'est pas#f
.Et ici, l'argument est entendu pour être valable, toute la s-expression.
NB: Si vous êtes familier avec les non-lisp langues c'est la réponse pour vous. Je ne cherche pas à les expliquer d'une autre manière que les autres code. Les autres réponses ne sont toutefois donc c'est juste un supplément.
Aucun de ceux-ci sont des fonctions, mais des formes spéciales.
est un peu comme Algol-dialectes
if
Noter que prédicat, conséquente et de remplacement peut être n'importe quoi à partir d'une expression complexe d'une valeur simple.
cond
fonctionne plus comme un if, elseif... else:and
fonctionne comme&&
en algol dialectes. Ainsifalse && print("Do it!")
n'a pas d'imprimer quoi que ce soit puisqu'il les courts-circuits.or
fonctionne comme||
en algol dialectes. ainsitrue || print("Do it!")
ne pas imprimer depuis le premier terme était vrai.