Je remarque que presque toutes les fonctions de schéma ne peuvent renvoyer qu'une liste en sortie.Schéma Comment retourner plusieurs valeurs?
Dans ce qui suit, je voudrais retourner plusieurs valeurs de tous les nœuds voisins de voisins.
(define (neighbors l w)
(if (and (= 1 l) (= 1 w))
(list (and (l (+ 1 w))) (and (+ 1 l) w)))) ; how to output 2 or more values?
Dans ce cas, je suis premier test si le noeud est dans le coin, si oui, revenir 2 valeurs des coordonnées où (l, w + 1), (l + 1 et w), fondamentalement, si I m vaut (1,1) me renvoie (1,2) et (2,1)
Il en va de même lorsque le nœud n'a qu'un seul voisin proche du bord, dans ce cas j'aurai 3 valeurs.
Si aucun front n'est à proximité, j'aurai 4 valeurs de retour.
J'ai essayé d'utiliser cons, append, list, display, write
aucun d'entre eux semble travailler avec des valeurs supplémentaires. J'ai besoin de cela comme une sous-fonction de this question. Comment dois-je l'implémenter pour pouvoir transmettre la valeur de retour et l'utiliser récursivement pour me renvoyer tous les nœuds adjacents?
Modifier: J'ai trouvé la réponse: utilisez le mot-clé "values
" pour renvoyer plusieurs valeurs. Exemple:
(define (store l w)
(values (write l)
(write w)
(newline)
(list (+ 1 w) l)
(list w (+ 1 l))))
Saviez-vous que vous pouvez poster une réponse à votre question? (Si vous aimez obtenir des points sur Stack Overflow.) –
merci de souligner cela, ne s'est pas rendu compte que je peux le faire – Jonathan