Tenir compte:Pourquoi l'interpréteur de rebol renvoie-t-il des résultats différents?
>> print max 5 6 7 8
6
== 8
La documentation indique que max
ne prend que deux arguments, donc je comprends la première ligne. Mais à partir de la deuxième ligne, il semble que l'interpréteur soit toujours capable de trouver le maximum d'un nombre arbitraire d'arguments.
Que se passe-t-il ici? Quelle est la différence entre les deux résultats renvoyés? Y a-t-il un moyen de capturer le second?
Vous avez raison. C'est l'interpréter dans un ordre différent de ce à quoi je m'attendais, ce qui a causé la confusion. – jwalk
@hobbs l'a, à peu près. La 'liste' comme il l'appelle, n'est pas vraiment une série! dans la mesure où le dialecte «do» voit les choses, car elles ne sont pas entre crochets, mais sont simplement des entiers 4 les uns après les autres. Les deux premiers servent d'arguments à 'max', tandis que les derniers sont des entiers autonomes! expressions qui évaluent à eux-mêmes. – Adrian
Eh bien, si vous tapez ">> 8" alors vous verrez "== 8" sur la console. Cela signifie "8, renvoyé 8". Dans votre exemple, vous avez calculé quelque chose (max), puis imprimez le résultat du calcul (6) puis vous faites sept (7) puis DO 8 qui retombent 8 à la console (la ligne == signifie la valeur de retour, n'est pas une sortie de PRINT ou PROBE) – endo64