si le reste de la construction
Je suis en train de résoudre une fonction de base. mais j'obtiens une erreur avec mon deuxième instruction if et le else.Ff vous pouvez me donner une aide voici le code.
(define (equation x)
(if(> x 2) (+(-(* x x) x) 4) )
(if (and (> x 1 ) (= x 1)) (and (< x 2) (= x 2)) (/ 1 x))
(else 0)
)
Je ne sais pas de régime, mais il pourrait être que vous avez voulu dire
non parce que à la fois la condition nécessaire pour être vrai je pense que dans la façon dont il est maintenant, il vérifie seulement la première partie de la deuxième si
x ne peut pas être plus grand ET égal à 1 mais supérieur OU égal à 1..
or
s au lieu de and
s?non parce que à la fois la condition nécessaire pour être vrai je pense que dans la façon dont il est maintenant, il vérifie seulement la première partie de la deuxième si
x ne peut pas être plus grand ET égal à 1 mais supérieur OU égal à 1..
OriginalL'auteur Doesn't Matter | 2012-07-23
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs erreurs dans votre code. Et vous devez utiliser un
cond
lorsque vous traitez avec plusieurs conditions (pensez-y comme une série de if/ELSE if/.../ELSE).Être conscient que l'expression
(and (> x 1) (= x 1))
sera jamais être vrai, commex
est soit supérieure ou égale à1
, les deux conditions peuvent jamais être vrais en même temps. Vous signifiait probablement(or (> x 1) (= x 1))
, mais même si cette expression peut être écrite de façon plus concise, comme(>= x 1)
. Les mêmes considérations s'appliquent pour la condition(and (< x 2) (= x 2))
.Je crois que c'est ce que vous visez:
OriginalL'auteur Óscar López
Le format de si la condition est
(if (condition) (consequent) (alternate))
. Leelse
ne peut pas être utilisé avecif
. Voici le même code sans l'aide de cond/elseOu sinon
OriginalL'auteur Rajesh Bhat
et (> x 1 ) (= x 1) est alwayse faux
et (< x 2) (= x 2) est toujours faux
Il n'y a pas d'opérateur de connecter les travailler avec le second si
Je ne sais pas sheme, mais je pense que c'est quelque chose comme préfixe de notation. et (> x 0) (< x 3) par exemple .... edit: ne fonctionne qu'avec des entiers
Question: j'ai posté cette réponse, il ya 3 minutes
OriginalL'auteur Ussr