У меня есть ассоциативная операция >>
. Проблема в том, что его стоимость линейно зависит от размера его левого операнда. Таким образом, выражение, составленная последовательностью n
применений >>
какКак создать право-ассоциативный оператор инфикса?
a >> a >> a >> a >> a >> ... >> a
имеет квадратную стоимость с точкой зрения n
, так как по умолчанию операторы инфиксных являются left-associative. Как сделать его право-ассоциативным, чтобы стоимость такого выражения поддерживалась линейной с точки зрения n
?
Я знаю, что автоответчик рекомендуется в целом. Применяется ли это также для публикации как вопроса, так и ответа в одно и то же время? Я собирался опубликовать ответ, но, поскольку у вас был лучший ответ, это было пустой тратой времени. И ваш вопрос и ответ очень хорошо написаны, но это как-то оставляет впечатление превращения известного факта в репутацию? Тем не менее, фраза * мне понадобилось некоторое время, чтобы понять ... * добавляет приятное прикосновение иронии :). – bluenote10
@ bluenote10 Я искал SO, не получив ответа, поэтому решил написать вопрос. Я его почти подготовил, но я колебался и пытался найти немного больше, чтобы попытаться найти решение. Я нашел некоторое замечание об использовании ':', и я в конце концов нашел решение в справочной системе Scala и сделал это для моего дела. Было немного отбросить вопрос и не делиться результатами, поэтому я опубликовал оба (в то же время). –
Я полностью согласен с вами в том, что он добавляет ценность SO (поддерживаются оба). Я просто хотел узнать, официально ли это поощряется, поскольку это может быть немного раздражающим для пользователей, предполагая, что OP действительно ищет ответ. Не было получено никакой официальной информации. – bluenote10