Відповідний іменник для "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.