Рассмотрим:Почему интерпретатор rebol возвращает разные результаты?
>> print max 5 6 7 8
6
== 8
В документации говорится, что max
принимает только два аргумента, поэтому я понимаю, первая линия. Но со второй строки похоже, что интерпретатор все еще способен найти максимум произвольного числа аргументов.
Что здесь происходит? В чем разница между двумя результатами? Есть ли способ захватить второй?
Вы правы. Он интерпретирует его в другом порядке, чем я ожидал, что вызвало путаницу. – jwalk
@hobbs есть, в значительной степени. «Список», как он его называет, на самом деле не серия! поскольку диалект «делать» видит вещи, поскольку они не заключены в квадратные скобки, а просто четыре целого! одно за другим. Первые два служат аргументами 'max', а последние - просто автономными целыми числами! выражения, которые сами оценивают. – Adrian
Ну, если вы наберете «>> 8», вы увидите «== 8» на консоли. Это означает «8, вернулся 8 назад». В вашем примере вы вычислили что-то (макс.), Затем распечатаете результат вычисления (6), затем вы выполните семь (7), а затем DO 8, которые перенаправляют 8 обратно на консоль (строка == означает возвращаемое значение, оно не является результатом PRINT или PROBE) – endo64