Відповідний іменник для "side-effect-free"?


10

Для функцій або обчислень у нас є такі терміни, як:

  • Детермінований - детермінізм
  • Чисто - чистота

Тепер який правильний відповідний іменник для побічних ефектів ?

"Побічна вільність"? "Побічна свобода"? "Побічна ефективність"?


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

1
Чи побічний ефект не відрізняється від чистого?
Андрій Бауер

@Raphael Я теж думав поставити питання там, але оскільки я запитую про правильний відповідний іменник у контексті програмування, я думаю, що комп'ютерний вчений може дати мені кращі відповіді.
rolve

3
@AndrejBauer Я думаю, що чистий є як побічним, так і детермінованим, тоді як без побічних ефектів все ще може бути недетермінованим.
rolve

@Raphael Насправді немає дуже конкретного контексту. Я зараз замислююся про те, як детерміновані, без побічних та чистих функцій співвідносяться між собою. І думати над цими поняттями, не маючи назви для кожного з них, мені стає непросто. : D
rolve

Відповіді:


8

Хороше правило для граматичних запитань - якщо це так складно, що вам потрібно задати, краще просто перефразувати речення. Наприклад, "Побічний ефект - свобода функції гарантує X" простіше і елегантніше написано: "Оскільки функція не має побічних ефектів, X гарантується" або навіть, "Функція не має побічних ефектів, тому X гарантується ».

Сказавши це, ключові слова для статей, як очікується, будуть іменниковими фразами, щоб було місце використовувати "свободу побічних ефектів".

(До речі, "небічний ефект" є прикметником.)


(До речі, "небічний ефект" - це прикметник.) Добрий улов ... І дякую за відповідь. Але, на жаль, мені не потрібне слово лише для речення.
rolve

8

Залежно від контексту, "відсутність побічних ефектів" може бути більш зрозумілим терміном.


7

Слово - нуліпотенція , іменникова форма нанівець . З першого визначення на Вікіслов'ї:

(математика, обчислення) Опис дії, яка не має побічного ефекту . Запити, як правило, є нульовими: вони повертають корисні дані, але не змінюють запитувану структуру даних. Контраст з ідемпотенцією.

(наголос мій)

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


Нічого собі, я ніколи раніше не чув про цей термін. Це, мабуть, не використовується зазвичай (Google повідомляє про 16'300 результатів за "нульовий потенціал" та 1'580 результатів за "нульовий потенціал", і моя перевірка орфографії браузера не знає жодного з них). Але я можу просто використати це заради цього! Дякую.
rolve

3
Я експерт із домену, і не думаю, що я ніколи не бачив, щоб цей термін використовувався. Це не погане слово, але його обов'язково потрібно визначити перед використанням.
Жил "ТАК - перестань бути злим"

3
Це допомогло мені зрозуміти, що існує різниця між nullpotentта nilpotent.
Вал

1
@Val, так, я думав, що вони означають те саме, поки я не вивчив абстрактну алгебру. Якби я почувався особливо жорстоко, я би пояснив це тим, що щось недійсне впливає ні на що, тоді як щось нільпотентне не впливає ні на що. : P
Матвій Пізіак

3

Я засвоїв цю концепцію як референтну прозорість .

Однак існує певна дискусія щодо того, чи є це насправді значущим терміном, так що якщо ви збираєтесь використовувати його у статті, то слід визначити його спочатку.


2
Референтна прозорість - це не те саме, що відсутність побічних ефектів. Ви можете мати суто функціональну мову, в якій макроси викликають небажане захоплення імен ліворуч та праворуч, тим самим знищуючи референтну прозорість.
Каз

@Kaz Якщо говорити про посилання, чи є у вас посилання на цю історію макросів?
rolve

@rolve Я міг би бути занадто приходським поглядом. Для контрастної дивіться визначення проекту Tunes щодо референтної прозорості, яка має зв’язок із свободою від побічних ефектів: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz

@rolve Я думав про референтну прозорість у контексті оцінювання: перетворення коду можуть переміщувати вирази, але посилання в цих виразах справно працюють незалежно від того. Скажімо, гігієнічні макросистеми є відносно прозорими. Між посиланням і тим, на що він посилається, немає нічого "випадково непрозорого", як символ однойменного символу, який вставив компілятор у якийсь невидимий код.
Каз

@Kaz: Як я вже згадував у своїй відповіді, є кілька суперечливих визначень „референтної прозорості”
BlueRaja - Danny Pflughoeft

2

Я б використовував побічну свободу.


На жаль, це трактує, що побічні ефекти мають свободу, а не те, що ситуація не має побічних ефектів; що однозначно виражається "свободою від побічних ефектів".
Каз

3
Звичайно. Хоча це правда, я бачив, що це використовується на практиці.
Дейв Кларк

2

Якщо виконання функції кілька разів має такий же чистий ефект на систему, як і запуск її один раз, функція є ідентичною та має ідентифікаційну здатність . Не знаю, чи це те, що ти шукаєш.


1
Дякую, це ще одна концепція, про яку я повинен буде подумати. Можливо, можна сказати, що idempotent є більш слабкою формою без побічних ефектів. Але це не зовсім те, що я шукав. (І в будь-якому випадку це не іменник. ;-))
rolve

1
Хороший момент - іменникова форма - idempotency.
Tin Man

3
Приклад функції idempotent chmod:: ви можете повторно запустити її кілька разів, вона не зробить більше, ніж перший раз (якщо файли не змінювалися між ...). Є багато інших. Це не зовсім "без побічних ефектів", однак, оскільки це все змінює і може заважати іншим програмам щось робити, як тільки дозвіл змінюється.
Олів'є Дулак

1
Цей термін, мабуть, є найважливішим у веб-програмуванні - якщо ви змінюєте базу даних (наприклад, додаєте нових користувачів) і маєте справу з ненадійністю мережі, вам потрібно переконатися, що дублюються повідомлення, отримані сервером не викликати несподіваних проблем.
Tin Man

2
Idempotent функції, безумовно, не є побічними ефектами. N викликів idempotent функції має такий же загальний побічний ефект, як 1 виклик. Функція без ефекту - це особливий випадок ідемпотенції.
Каз

1

Ви майже отримали це з "свободою побічних ефектів". Проблема полягає в тому, що це, можливо, означає, що побічні ефекти є безкоштовними (як у "свободі побічних ефектів"). Щоб було зрозуміло, вам потрібна "свобода від побічних ефектів". І зауважте, як "вільний від" не поєднується зі "свободою"; і "вільне від чогось", і "вільне від чогось" переходять до "свободи від чогось".

Загалом, ви знайдете, що складені словосполучення іменників, головою яких є "свобода", інстинктивно відхиляються носіями англійської мови, навіть якщо вони граматичні. Наприклад, "свобода слова" та "свобода від гніту" не називаються "свободою слова" та "свободою гніту". Сенс може бути розроблений з контексту ("свобода слова", ймовірно, не "свобода слова", а "свобода гніту" не "свобода гнобити"), але форми просто не є ефонічними . Навіть якщо це просто від утилізації, це так і є.

Наукові праці в КС також написані для світової аудиторії, до якої входять англійські мови, що не є рідними. Якщо ви в змозі, тоді пишіть як носій англійської мови.


Дякую за пояснення, вони мені здаються розумними. Чи має щось значення, якби я написав слово тире, як я це робив у початковій публікації: "побічний ефект - свобода"? Або це було б просто неправильно?
rolve

Дефіси не змінюють значення. Про дефіси дивіться тут . Застосовується розділ про складені іменники.
Каз

1
"Побічна свобода" чудово і широко використовується. Практичної неоднозначності немає, оскільки, з двох можливих розбіжностей, "свобода від побічних ефектів" - це цілком розумна концепція, про яку часто говорять, тоді як "свобода побічних ефектів" - це нісенітниця, про яку ніхто ніколи не говорить. Якщо фраза має очевидне значення, люди не шукатимуть інших значень: вони просто продовжують читати решту речення.
Девід Річербі

1
@DavidRicherby Дякую за коментар, я думав те саме. Ще приємно розуміти, що існує теоретична неоднозначність.
rolve

1
"Побічна свобода" - це стандартна, ідіоматична фраза. Є лише одне, що могло би означати; ерго , саме це означає. Граматика існує для того, щоб служити нам, а не поневолити нас.
Девід Річербі

-1

Ви, мабуть, хочете " ортогональності ". Здається, точно відповідає вашому визначенню.


Дякую за відповідь. Однак я думаю, що слово ортогональне використовується лише для понять, а не для обчислень чи функцій. Однак правда, що дві функції, що не мають побічних ефектів, можна розглядати як ортогональні, оскільки вони не заважають одна одній.
rolve

Я розумію, що "ортогональність" також використовується для функцій (я думаю, чисті функції іноді називали "ортогональними"). Але я можу помилятися, оскільки "ортогональний" відчуває, що йому потрібна друга річ, тобто щось ортогональне чомусь іншому, тому справді це не може бути таким загальним ...
CamilB

Але чому ви шукаєте окремий термін для функцій без побічних ефектів? "Чиста функція" означає саме це: і детерміновані, і без побічних ефектів (йдеться у Вікіпедії).
CamilB

Саме в цьому і полягає: я хочу розмірковувати про функції, які не мають побічних ефектів, але не обов'язково детерміновані. Чистого вже "занадто багато".
rolve

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