Rzeczownik odpowiadający „bez skutków ubocznych”?

10

W przypadku funkcji lub obliczeń mamy terminy takie jak:

  • Deterministyczny - Determinizm
  • Czysta - czystość

Jaki jest teraz odpowiedni rzeczownik dla bez skutków ubocznych ?

„Wolność efektów ubocznych”? „Swoboda efektów ubocznych”? „Nieskuteczne”?

rola
źródło
4
Czy nie powinno to dotyczyć języka angielskiego i użytkowania ? ;) W każdym razie, czy możesz podać kontekst użytkowania? Zgadzam się, że używanie właściwego rzeczownika tego rodzaju nie wydaje się właściwe. (Jako rodowity Niemiec sympatyzuję; musimy jednak zmusić się, by nie tłumaczyć dosłownie takich potworów. Jeśli to możliwe, prawie zawsze są też kiepskie po niemiecku.)
Raphael
1
Czy brak skutków ubocznych różni się od czystego?
Andrej Bauer,
@Raphael Myślałem też pytać tam pytanie, ale jak pytam o prawidłowym odpowiedniego rzeczownika w kontekście programowania, myślę, że informatyk może mi dać lepsze odpowiedzi.
rolve
3
@AndrejBauer Myślę, że czysty jest zarówno wolny od skutków ubocznych, jak i deterministyczny, podczas gdy wolny od skutków ubocznych może nadal być niedeterministyczny.
rolve
@Raphael W rzeczywistości nie ma bardzo specyficznego kontekstu. Obecnie myślę o tym, jak deterministyczne, pozbawione skutków ubocznych i czyste funkcje odnoszą się do siebie. I zastanawianie się nad tymi pojęciami bez nazwy dla każdego z nich sprawia mi niepokój. : D
rolve,

Odpowiedzi:

8

Dobrą zasadą w przypadku pytań gramatycznych jest to, że jeśli jest ono tak skomplikowane, że trzeba je zadać, lepiej po prostu przeformułować zdanie. Na przykład „Swoboda działania funkcji w ramach gwarancji X” jest prostsza i bardziej elegancko napisana: „Ponieważ funkcja jest wolna od efektów ubocznych, X jest gwarantowane” lub nawet „Funkcja nie ma skutków ubocznych, więc X Jest gwarantowana."

Powiedziawszy to, słowa kluczowe w artykułach powinny być wyrażeniami rzeczownikowymi, więc byłoby to miejsce do użycia „wolności efektów ubocznych”.

(Nawiasem mówiąc, „nieskuteczne” to przymiotnik).

David Richerby
źródło
(Nawiasem mówiąc, „nieefektywny” to przymiotnik.) Dobry haczyk ... I dzięki za odpowiedź. Ale niestety nie potrzebuję tego słowa na zdanie.
rolve
8

W zależności od kontekstu „brak skutków ubocznych” może być bardziej czytelnym terminem.

Raphael
źródło
7

Słowo to nullipotencja , rzeczownikowa forma nullipotent . Z pierwszej definicji na Wikisłowniku:

(matematyka, informatyka) Opisywanie działania, które nie ma skutków ubocznych . Kwerendy są zazwyczaj nullipotentne: zwracają przydatne dane, ale nie zmieniają zapytanej struktury danych. Porównaj z idempotent.

(moje podkreślenie)

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

Matthew Piziak
źródło
Wow, nigdy wcześniej nie słyszałem o tym terminie. Wydaje się, że nie jest powszechnie używany (Google zgłasza 16'300 wyników dla „nullipotent” i 1'580 wyników dla „nullipotence”, a mój moduł sprawdzania pisowni nie zna żadnego z nich). Ale mógłbym po prostu użyć tego ze względu na to! Dzięki.
rolve,
3
Jestem ekspertem od domen i nie sądzę, żebym kiedykolwiek widział ten termin używany. To nie jest złe słowo, ale zdecydowanie należy je zdefiniować przed użyciem.
Gilles „SO- przestań być zły”
3
Pomogło mi to zrozumieć, że istnieje różnica między nullpotenti nilpotent.
Val
1
@ Val, tak, myślałem, że mają na myśli to samo, dopóki nie studiowałem algebry abstrakcyjnej. Gdybym czuł się wyjątkowo okrutny, wytłumaczyłbym to, mówiąc, że coś nullpotent niczego nie wpływa, podczas gdy coś nilpotent niczego nie wpływa. : P
Matthew Piziak,
3

Nauczyłem się tego pojęcia jako przejrzystości odniesienia .

Istnieje jednak pewna debata na temat tego, czy jest to rzeczywiście znaczący termin, więc jeśli zamierzasz użyć go w dokumencie, powinieneś go najpierw zdefiniować.

BlueRaja - Danny Pflughoeft
źródło
2
Referencyjna przejrzystość to nie to samo, co brak efektów ubocznych. Możesz mieć czysto funkcjonalny język, w którym makra powodują niechciane przechwytywanie nazw w lewo i w prawo, niszcząc w ten sposób przejrzystość referencyjną.
Kaz
@Kaz Mówiąc o referencjach, czy masz jakieś odniesienia do tej historii makro?
rolve,
@rolve Mógłbym przyjmować zbyt parafialny pogląd. Dla kontrastu, zobacz definicję przejrzystości referencyjnej projektu Tunes, która ma związek z wolnością od skutków ubocznych: tunes.org/wiki/referenial_20transparency_20and_20state.html
Kaz
@rolve Myślałem o przejrzystości odniesienia w kontekście oceny: transformacje kodu mogą przenosić wyrażenia, ale odwołania w tych wyrażeniach działają poprawnie bez względu na wszystko. Np. Systemy makr higienicznych uważa się za względnie przezroczyste. Nie ma nic „przypadkowo nieprzejrzystego” między odniesieniem a tym, do czego się odnosi, jak symbol o tej samej nazwie wstawiony przez kompilator w jakiś niewidoczny kod.
Kaz.
@Kaz: Jak wspomniałem w mojej odpowiedzi, istnieje kilka sprzecznych definicji „przejrzystości referencyjnej”
BlueRaja - Danny Pflughoeft
2

Wolałbym używać efektów ubocznych.

Dave Clarke
źródło
Niestety ma to interpretację, że skutki uboczne mają swobodę, a nie, że sytuacja jest wolna od skutków ubocznych; co jednoznacznie wyraża się w „braku skutków ubocznych”.
Kaz
3
Na pewno. Chociaż to prawda, widziałem, że jest to stosowane w praktyce.
Dave Clarke,
2

Jeśli wielokrotne uruchomienie funkcji ma taki sam efekt netto w systemie, jak jednorazowe uruchomienie, funkcja jest idempotentna i ma idempotencję . Nie wiem, czy tego szukasz.

Tin Man
źródło
1
Dzięki, to kolejna koncepcja, o której będę musiał pomyśleć. Być może można powiedzieć, że idempotent jest słabszą formą bez skutków ubocznych. Ale nie do końca tego szukałem. (A
zresztą
1
Dobra uwaga - rzeczownikiem jest idempotencja.
Tin Man,
3
przykład funkcji idempotentnej chmod: możesz ją uruchomić ponownie kilka razy, nie zrobi więcej niż za pierwszym razem (chyba że pliki zostaną zmienione między ...). Jest wiele innych. Nie jest to jednak „efekt uboczny”, ponieważ zmienia rzeczy i może uniemożliwić innym programom zrobienie czegoś po zmianie uprawnień.
Olivier Dulac
1
Termin ten jest prawdopodobnie najważniejszy w programowaniu internetowym - jeśli modyfikujesz bazę danych (na przykład dodajesz nowych użytkowników) i masz do czynienia z zawodnością sieci, musisz upewnić się, że zduplikowane wiadomości otrzymane przez serwer nie powoduj nieoczekiwanych problemów.
Tin Man,
2
Funkcje idempotentne zdecydowanie nie są pozbawione skutków ubocznych. N wywołań funkcji idempotentnej ma taki sam ogólny efekt uboczny jak 1 wywołanie. Funkcja bez efektu jest szczególnym przypadkiem idempotencji.
Kaz
1

Prawie masz to z „swobodą efektów ubocznych”. Problem polega na tym, że prawdopodobnie oznacza to, że skutki uboczne są bezpłatne (jak w „wolności efektów ubocznych”). Żeby było jasne, potrzebujesz „wolności od skutków ubocznych”. I zauważ, że „wolny od” nie łączy się z „wolnością”; zarówno „wolne od czegoś”, jak i „wolne od czegoś”, idą do „wolności od czegoś”.

Ogólnie rzecz biorąc, okaże się, że złożone wyrażenia rzeczownikowe, których głową jest „wolność”, są instynktownie unikane przez rodzimych użytkowników języka angielskiego, nawet jeśli są gramatyczne. Na przykład „wolność słowa” i „wolność od ucisku” nie są nazywane „wolnością słowa” i „wolnością ucisku”. Znaczenie można ustalić na podstawie kontekstu („wolność słowa” prawdopodobnie nie oznacza „wolności słowa”, a „wolność prześladowania” nie oznacza „wolności prześladowania”), ale formy po prostu nie są eufoniczne . Nawet jeśli jest to tylko nieużywane, tak właśnie jest.

Artykuły akademickie w CS są również pisane dla światowej publiczności, która obejmuje osoby, które nie są rodzimymi użytkownikami języka angielskiego. Jeśli potrafisz, pisz jak rodowity angielski.

Kaz
źródło
Dzięki za wyjaśnienia, wydają mi się rozsądne. Czy miałoby to jakąkolwiek różnicę, gdybym przeliterował to słowo myślnikami, tak jak to zrobiłem w oryginalnym poście: „wolność od efektów ubocznych”? Czy byłoby to po prostu złe?
rolve,
Łączniki nie zmieniają znaczenia. Informacje o łącznikach można znaleźć tutaj . Obowiązuje rozdział o rzeczownikach złożonych.
Kaz.
1
„Swoboda efektów ubocznych” jest dobra i szeroko stosowana. Nie ma praktycznej dwuznaczności, ponieważ z dwóch możliwych analiz „wolność od skutków ubocznych” jest całkowicie rozsądnym pojęciem, o którym się często dyskutuje, podczas gdy „wolność od skutków ubocznych” to nonsens, o którym nikt nigdy nie mówi. Jeśli fraza ma oczywiste znaczenie, ludzie nie będą szukać innych znaczeń: po prostu zaczną czytać resztę zdania.
David Richerby
1
@DavidRicherby Dzięki za komentarz, myślałem o tym samym. Jednak nadal miło jest zrozumieć, że istnieje teoretyczna dwuznaczność.
rolve,
1
„Swoboda skutków ubocznych” to standardowe, idiomatyczne zdanie. Jest tylko jedna rzecz, którą może mieć sens; ergo , to właśnie to oznacza. Gramatyka istnieje, aby nam służyć, a nie zniewolić.
David Richerby,
-1

Prawdopodobnie chcesz „ ortogonalności ”. Wydaje się, że dokładnie pasuje do twojej definicji.

CamilB
źródło
Dziękuję za odpowiedź. Myślę jednak, że słowo ortogonalny jest używane tylko w pojęciach, a nie w obliczeniach lub funkcjach. Prawdą jest jednak, że dwie funkcje bez skutków ubocznych można uznać za ortogonalne, ponieważ nie zakłócają się one wzajemnie.
rolve,
Rozumiem, że „ortogonalność” była również używana dla funkcji (myślę, że czyste funkcje były czasami nazywane „ortogonalnymi”). Ale mogę się mylić, ponieważ „ortogonalny” wydaje się, że potrzebuje drugiej rzeczy, tj. Czegoś ortogonalnego w stosunku do czegoś innego, więc tak naprawdę to wcale nie może być taki generał ...
CamilB
Ale dlaczego szukasz osobnego terminu dla funkcji bez skutków ubocznych? „Czysta funkcja” oznacza dokładnie to: zarówno deterministyczną, jak i bez skutków ubocznych (mówi Wikipedia).
CamilB,
Właśnie o to chodzi: chcę argumentować o funkcjach, które są pozbawione skutków ubocznych, ale niekoniecznie deterministyczne. Pure to już „za dużo”.
rolve,
Teraz rozumiem. Ciekawym ćwiczeniem byłoby poszukiwanie niedeterministycznych funkcji bez skutków ubocznych. Nie mogę wymyślić żadnego, oprócz atomu, wzorowanego na QM :) Czy mogę polecić thesaurus.com? Może istnieje antonim rzeczownika związany z efektem ubocznym. Być może potrzebne słowo jest słowem, które należy dodać do języka angielskiego z innego języka. Zostawię cię teraz w spokoju :)
CamilB