порт прослушивания - это порт! ценность, а не объект! значение. Порт! можно рассматривать как вывод из объекта! Тип данных и имеющий специализированное назначение. ПЕРВОЕ поведение (как и все другие действия! Значения) является полиморфным.
Для объекта! значения, он возвращает список слов, определенных в контексте этого объекта (плюс специальное самоссылающееся слово 'self):
foo: make object! [bar: 3]
first foo
== [self bar]
Для порта! значения, FIRST будет иметь два различных поведения в зависимости от порта! тип:
клиентский порт: отправляет действие PICK внутреннему обработчику порта (первый порт == порт выбора 1).
порт сервера: он вызовет действие ACCEPT для нижележащего сокета C, чтобы получить новый порт подключения! значение, позволяющее общаться с клиентом.
Итак:
wait listen-port
возвращает значение порта прослушивания, когда происходит событие.
http-port: first wait listen-port
возвращает новый порт! значение, связанное с клиентом, на которое ссылается 'http-порт.