Что делает, например, % +, % делает? в R

Проблема с 'ping файла' состоит в том, что Вы оценили бы http ответ сервера, тогда как Ваш целевой ресурс для игр, которым Вы служите, может иметь совсем другое поведение и таким образом другую задержку.

Просто идея внезапно, возможно, даже нереалистичный в зависимости от фактического контекста: но, не был бы это быть интересным сделать сценарий сервера на основе короткой последовательности задач обычно выполняемым серверами во время геймплея (например, открытие соединения RTMP, получая информацию, передавая его обратно). В зависимости от общего количества серверов Вы могли, почти открывая их одновременно и определять первый ответ как победителя (вычитающий время, которого Ваш клиент требует независимо для обработки каждого запроса).

, Конечно, это - довольно дорогой разговор стороны сервера метода, но по крайней мере Вы, надо надеяться, получили бы надежный результат (сервер и сетевые задержки, которым подводят итог). Даже если бы это берет пару секунд для оценки, это было бы вопросом части общего приятного геймплея.

23
задан Nima G 5 April 2016 в 11:41
поделиться

3 ответа

Основная причина в том, что если вы занимаетесь как универсальным программированием, так и численными вычислениями, полезно иметь большой набор доступных двоичных операторов. Например, если вы храните числа в двумерных массивах, вы можете захотеть умножить массивы поэлементно или вы можете захотеть вычислить матричное произведение двух массивов. В Matlab этими двумя операторами являются . * и * ; в R это * и % *% . Python сопротивлялся попыткам добавить новые операторы, и поэтому numpy различает эти два вида продуктов наличием двух классов: класс массива умножается поэлементно, класс матрицы - умножается в смысле линейной алгебры.

Другой пример из Python - это то, что для списков плюс означает конкатенацию: [1,2,3] + [4,5] == [1,2,3,4,5] . Но для массивов numpy плюс означает поэлементное сложение: массив ([1,2]) + массив ([4,5]) == массив ([5,7]) . Если ваш код должен делать и то, и другое, вы должны выполнять преобразование между классами или использовать нотацию функций, что может привести к громоздкому на вид коду, особенно там, где задействована математика.

Поэтому иногда было бы удобно иметь больше операторов, доступных для использования , и вы можете не знать заранее, какие операторы используются в конкретном приложении. Поэтому разработчики R решили рассматривать как операторы все, что называется % foo% , и существует несколько примеров: % в% установлено членство, % x% - продукт Кронекера, % o% - внешний продукт. В качестве примера языка, который довел это до крайности, см. Fortress (раздел 16 спецификации начинается с правил для имен операторов).

В упомянутом вами сообщении в блоге автор является с использованием графического пакета ggplot2 , который определяет % +% как некую комбинацию двух элементов графика. На самом деле кажется, что он добавляет метод к голому + (который является общей функцией, поэтому вы можете определить, что он означает для определяемых пользователем объектов), но он также определяет % +% так что вы можете использовать ggplot2 значение + (что бы это ни было) для других объектов. Если вы устанавливаете ggplot2, введите require (ggplot2) и ? `% +%` , чтобы увидеть документацию по этому оператору,

27
ответ дан 29 November 2019 в 01:55
поделиться

Не существует общепринятого % +% . Возможно, вы смотрели этот вчерашний вопрос , где были определены

R> '%+%' <- paste
R> "foo" %+% "bar"
[1] "foo bar"
R> 

и специальная функция конкатенации строк. Как правило, синтаксис «процент-оператор-процент» открыт для пользовательских функций с двумя аргументами, но (AFAIK) нет общепринятой версии для % +% , которую можно ожидать повсюду. .

15
ответ дан 29 November 2019 в 01:55
поделиться

На основании моего беглого взгляда на руководство это может быть определяемый пользователем инфиксный оператор, поэтому трудно сказать, каков фактический смысл ...

Я бы подумал о двоичном сложении.

1
ответ дан 29 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: