Si j'ai cette fonction dans tapée/raquette:Comment la « promesse » qu'une valeur sera un certain type
(: random-if-empty (-> (U Image-Color "empty") Image-Color))
(define (random-if-empty s)
(cond
[(equal? s "empty") (random-color)]
[else s]))
qui retourne une couleur au hasard si elle est entrée est "empty"
, sinon il renvoie son entrée, comment puis-je arrêter le vérificateur de type de dire que s
(en [else s]
) peut être un Image-Color
ou"empty"
au lieu du Image-Color
attendu? Ou y a-t-il un meilleur moyen de le faire? J'utilise la bibliothèque typed/2htdp/image
, d'où provient Image-Color
.
Je suppose que cela ne fonctionne pas à égalité? parce que ce n'est pas un prédicat. – Vityou
Le changer en 'string?' Change le comportement du programme si un 'Image-Color' peut être une chaîne. Puisque dans 'typed/2htdp/image' il peut le faire, la première solution de Gibstick est fausse. –