Соответствующее существительное для «без побочных эффектов»?


10

Для функций или вычислений у нас есть такие термины, как:

  • Детерминизм - Детерминизм
  • Чистый - Чистота

Теперь, каково правильное существительное, соответствующее без побочных эффектов ?

"Побочный эффект свободы"? "Побочный эффект свободы"? «Небоковая эффективная»?


4
Разве это не должно быть на английском языке и использовании ? ;) В любом случае, не могли бы вы дать свой контекст использования? Я согласен с тем, что употреблять собственное существительное такого рода не правильно. (Как коренному немецкому языку я сочувствую; но мы должны заставить себя не переводить таких монстров буквально. Они почти всегда плохи и по-немецки, если это возможно.)
Рафаэль

1
Отличается ли побочный эффект от чистого?
Андрей Бауэр

@ Рафаэль Я также думал задать вопрос там, но, поскольку я спрашиваю о правильном соответствующем существительном в контексте программирования, я думаю, что ученый-компьютер может дать мне лучшие ответы.
Ролв

3
@AndrejBauer Я думаю , что чистое это как побочный эффект свободный и детерминированный, в то время как побочный эффект свободной еще может быть недетерминирован.
Ролв

@ Рафаэль На самом деле нет особого контекста. В настоящее время я думаю о том, как детерминированные, без побочных эффектов и чистые функции связаны друг с другом. И думать об этих понятиях, не имея названия для каждого из них, мне непросто. : D
Ролв

Ответы:


8

Хорошее эмпирическое правило для грамматических вопросов: если это так сложно, что вам нужно задать вопрос, лучше просто перефразировать предложение. Например, «Свобода от побочных эффектов функции гарантирует X» написано более просто и элегантно: «Поскольку функция не имеет побочных эффектов, X гарантировано» или даже «У функции нет побочных эффектов, поэтому X гарантировано. "

Сказав это, ключевые слова для статей, как ожидается, будут существительными, чтобы в них можно было использовать «свободу побочных эффектов».

(Кстати, «неэффективно» - это прилагательное.)


(Кстати, «неэффективно» - это прилагательное.) Хороший улов ... И спасибо за ответ. Но, к сожалению, мне не нужно слово только для предложения.
Ролв

8

В зависимости от контекста термин «отсутствие побочных эффектов» может быть более читабельным.


7

Слово нульпотентность , существительная форма нулипотент . Из первого определения на Викисловарь:

(математика, вычисления) Описание действия, которое не имеет побочных эффектов . Запросы, как правило, являются нулевыми: они возвращают полезные данные, но не изменяют запрашиваемую структуру данных. Контраст с идемпотентом.

(акцент мой)

http://en.wiktionary.org/wiki/nullipotent


Вау, я никогда не слышал об этом термине раньше. Похоже, он не используется широко (Google сообщает 16'300 результатов для "nullipotent" и 1'580 результатов для "nullipotence", и мой браузер для проверки орфографии не знает ни одного из них). Но я мог бы просто использовать это ради этого! Спасибо.
Ролв

3
Я эксперт в области, и я не думаю, что когда-либо видел этот термин. Это не плохое слово, но его обязательно нужно определить перед использованием.
Жиль "ТАК ... перестать быть злым"

3
Это помогло мне понять, что существует разница между nullpotentи nilpotent.
Val

1
@Val, да, я думал, что они имели в виду одно и то же, пока я не изучал абстрактную алгебру. Если бы я чувствовал себя особенно жестоким, я бы объяснил это тем, что что-то нольпотентное не влияет ни на что, а что-то нильпотентное не влияет ни на что. : P
Мэтью Пизиак

3

Я изучил эту концепцию как ссылочную прозрачность .

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


2
Ссылочная прозрачность - это не то же самое, что отсутствие побочных эффектов. У вас может быть чисто функциональный язык, в котором макросы вызывают нежелательный захват имен слева и справа, тем самым разрушая прозрачность ссылок.
Каз

@Kaz Говоря о референсе, есть ли у вас какие-либо ссылки на эту макро-историю?
Ролв

@rolve Я мог бы быть слишком узким взглядом. В отличие от этого, см. Определение проекта ссылочной прозрачности проекта Tunes, связанное с отсутствием побочных эффектов: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz

@rolve Я думал о ссылочной прозрачности в контексте оценки: преобразования кода могут перемещать выражения, но ссылки в этих выражениях работают правильно, несмотря ни на что. Например, гигиенические макросистемы называются референтно прозрачными. Нет ничего «случайно непрозрачного» между ссылкой и тем, на что она ссылается, как символ с тем же именем, вставленный компилятором в некоторый невидимый код.
Каз

@Kaz: Как я уже упоминал в своем ответе, существует несколько противоречивых определений «прозрачности по
ссылкам

2

Свобода побочных эффектов, это то, что я бы использовал.


К сожалению, у этого есть интерпретация, что у побочных эффектов есть свобода, не то, что ситуация свободна от побочных эффектов; это однозначно выражается "свободой от побочных эффектов".
Каз

3
Безусловно. Хотя это правда, я видел, как это используется на практике.
Дейв Кларк

2

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


1
Спасибо, это еще одна концепция, о которой мне придется подумать. Может быть, можно сказать, что идемпотент является более слабой формой без побочных эффектов. Но это не совсем то, что я искал. (И ни в коем случае это не существительное. ;-))
rolve

1
Хорошая мысль - существительное в форме идемпотентности.
Жестянщик

3
пример идемпотентной функции:: chmodвы можете перезапустить ее несколько раз, это не сработает больше, чем в первый раз (если файлы не изменены между ...). Есть много других. Однако это не совсем «свободный от побочных эффектов», так как он меняет вещи и может помешать другим программам что-то делать, как только изменится разрешение.
Оливье Дюлак

1
Этот термин, вероятно, самый важный в веб-программировании - если вы изменяете базу данных (например, добавляете новых пользователей) и имеете дело с ненадежностью сети, вам необходимо убедиться, что дублированные сообщения получены сервером не вызывает неожиданных проблем.
Жестянщик

2
Идемпотентные функции определенно не свободны от побочных эффектов. N вызовов идемпотентной функции имеет тот же общий побочный эффект, что и 1 вызов. Функция без эффекта является частным случаем идемпотентности.
Каз

1

Вы почти получили это с "свободой побочного эффекта". Проблема в том, что это, возможно, означает, что побочные эффекты бесплатны (как в «свободе побочных эффектов»). Чтобы было понятно, вам нужна «свобода от побочных эффектов». И обратите внимание, что «свободный от» не сочетается с «свободой»; оба «свободные от чего-то» и «свободные от чего-то» переходят к «свободе от чего-то».

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

Академические работы в CS также написаны для мировой аудитории, которая включает в себя не носителей английского языка. Если вы можете, то пишите как носитель английского языка.


Спасибо за объяснения, они кажутся мне разумными. Будет ли иметь какое-то значение, если я произнесу слово с тире, как я делал в оригинальном посте: «побочный эффект-свобода»? Или это было бы просто неправильно?
Ролв

Дефисы не меняют смысла. О дефисах смотрите здесь . Применяется раздел «Составные существительные».
Каз

1
«Свобода от побочных эффектов» прекрасно и широко используется. Практической двусмысленности нет, потому что из двух возможных разборов «свобода от побочных эффектов» является совершенно разумной концепцией, которая часто обсуждается, в то время как «свобода побочных эффектов» - это нонсенс, о котором никто никогда не говорит. Если фраза имеет очевидное значение, люди не будут искать другие значения: они просто начнут читать остальную часть предложения.
Дэвид Ричерби,

1
@DavidRicherby Спасибо за комментарий, я думал о том же. Тем не менее, приятно понимать, что есть теоретическая неопределенность.
Ролв

1
«Свобода от побочных эффектов» - стандартная идиоматическая фраза. Есть только одна вещь, которую это могло бы разумно означать; эрго , это то , что это значит. Грамматика существует, чтобы служить нам, а не порабощать нас.
Дэвид Ричерби

-1

Вы, вероятно, хотите " ортогональность ". Кажется, это точно соответствует твоему определению.


Спасибо за ответ. Тем не менее, я думаю, что слово ортогональное используется только для понятий, а не для вычислений или функций. Однако верно то, что две функции без побочных эффектов могут рассматриваться как ортогональные, поскольку они не мешают друг другу.
Ролв

Насколько я понимаю, «ортогональность» также использовалась для функций (я думаю, что чистые функции иногда называли «ортогональными»). Но я могу ошибаться, поскольку «ортогональному» кажется, что ему нужно что-то второе, то есть что-то ортогональное чему-то другому, так что на самом деле все это не может быть таким общим ...
CamilB

Но почему вы ищете отдельный термин для функций без побочных эффектов? «Чистая функция» означает именно это: и детерминированный, и без побочных эффектов (говорит Википедия).
CamilB

В том-то и дело: я хочу рассуждать о функциях, которые не имеют побочных эффектов, но не обязательно являются детерминированными. Чистое уже "слишком много".
Ролв

Теперь я понимаю. Было бы интересным заняться поиском недетерминированных функций без побочных эффектов. Я не могу придумать ничего, кроме атома, смоделированного с помощью QM :) Могу ли я порекомендовать thesaurus.com? Возможно есть антоним существительного, связанного с побочным эффектом там. Также, возможно, вам нужно слово, которое нужно добавить в английский с другого языка. Я оставлю тебя в покое сейчас :)
CamilB
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.