Substantivo correspondente para "sem efeitos colaterais"?

10

Para funções ou cálculos, temos termos como:

  • Determinístico - Determinismo
  • Pure - Pureza

Agora, qual é o substantivo correspondente correto para livre de efeitos colaterais ?

"Efeito colateral sem efeito"? "Liberdade de efeitos colaterais"? "Não tem efeito colateral"?

resolver
fonte
4
Isso não deveria estar no idioma inglês e no uso ? ;) De qualquer forma, você poderia fornecer o contexto de uso? Concordo que o uso de um nome próprio desse tipo não parece certo. (Como simpatizam I alemão nativo, mas temos de nos forçar não para converter esses monstros literalmente Eles são quase sempre ruim em alemão, também, se possível..)
Raphael
11
O efeito colateral é diferente do puro?
Andrej Bauer
@ Rafael Também pensei em fazer a pergunta lá, mas como estou perguntando sobre o substantivo correspondente correto em um contexto de programação, acho que o cientista da computação pode me dar respostas melhores.
rolve
3
@AndrejBauer Eu acho que pura é tanto e determinista side-livre de efeito, enquanto o lado livre de efeitos podem ser ainda não determinístico.
rolve
@Raphael Na verdade, não há contexto muito específico. Atualmente, estou pensando em como funções deterministas, livres de efeitos colaterais e puras se relacionam. E pensar nesses conceitos sem ter um nome para cada um deles me deixa desconfortável. : D
rolve

Respostas:

8

Uma boa regra geral para perguntas gramaticais é que, se é tão complicado que você precisa perguntar, é melhor refazer a frase. Por exemplo, "A liberdade de efeitos colaterais da função garante X" é escrita de forma mais simples e elegante: "Como a função é livre de efeitos colaterais, X é garantido" ou até mesmo "A função não tem efeitos colaterais, portanto X é garantido."

Dito isto, espera-se que as palavras-chave dos artigos sejam frases substantivas, de modo que esse seria um local para usar a "liberdade de efeitos colaterais".

(A propósito, "não tem efeito colateral" é um adjetivo.)

David Richerby
fonte
(A propósito, "não tem efeito colateral" é um adjetivo.) Boa captura ... E obrigado pela resposta. Mas, infelizmente, não preciso da palavra para apenas uma frase.
rolve
8

Dependendo do contexto, "ausência de efeitos colaterais" pode ser um termo mais legível.

Rafael
fonte
7

A palavra é nullipotence , a forma substantiva de nullipotent . Desde a primeira definição no Wikcionário:

(matemática, computação) Descrevendo uma ação que não tem efeito colateral . As consultas geralmente são nulo-potenciais: elas retornam dados úteis, mas não alteram a estrutura de dados consultada. Contraste com o idempotente.

(ênfase minha)

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

Matthew Piziak
fonte
Uau, nunca ouvi falar desse termo antes. Não parece ser comumente usado (o Google relata 16'300 resultados para "nullipotent" e 1'580 resultados para "nullipotence" e o verificador ortográfico do meu navegador não conhece nenhum deles). Mas eu só poderia usá-lo por causa disso! Obrigado.
rolve
3
Sou especialista em domínio e acho que nunca vi esse termo ser usado. Não é uma palavra ruim, mas definitivamente precisa ser definida antes do uso.
Gilles 'SO- stop be evil'
3
Isso me ajudou a perceber que existe uma diferença entre nullpotente nilpotent.
Val
11
@ Val, sim, eu pensei que eles significavam a mesma coisa até eu estudar álgebra abstrata. Se eu estivesse me sentindo particularmente cruel, explicaria dizendo que algo nulopotente não afeta nada, enquanto algo nilpotente não afeta nada. : P
Matthew Piziak
3

Eu aprendi esse conceito como transparência referencial .

No entanto, há um debate sobre se esse termo é realmente significativo ou não; portanto, se você for usá-lo em um artigo, defina-o primeiro.

BlueRaja - Danny Pflughoeft
fonte
2
Transparência referencial não é a mesma coisa que ausência de efeitos colaterais. Você pode ter uma linguagem puramente funcional na qual as macros causam a captura indesejada de nomes à esquerda e à direita, destruindo a transparência referencial.
Kaz
@Kaz Por falar em referencial, você tem alguma referência para essa macro história?
rolve
@rolve Eu poderia estar tendo uma visão muito paroquial. Para uma comparação, consulte a definição de transparência referencial do projeto Tunes, que tem conexão com a liberdade de efeitos colaterais: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz
@rolve Eu estava pensando em transparência referencial no contexto da avaliação: transformações de código podem realocar expressões, mas as referências nessas expressões funcionam corretamente, não importa o quê. Por exemplo, os sistemas de macros higiênicos são referidos como referencialmente transparentes. Não há nada "acidentalmente opaco" entre uma referência e o que ela se refere, como um símbolo com o mesmo nome inserido pelo compilador em algum código invisível.
Kaz
@Kaz: Como mencionei na minha resposta, existem várias definições conflitantes de 'transparência referencial'
BlueRaja - Danny Pflughoeft
2

Liberdade de efeitos colaterais, é o que eu usaria.

Dave Clarke
fonte
Infelizmente, isso tem uma interpretação de que os efeitos colaterais têm liberdade, não que a situação esteja livre de efeitos colaterais; isso é inequivocamente expresso por "liberdade de efeitos colaterais".
Kaz
3
Certamente. Mesmo que isso seja verdade, eu já o vi usado na prática.
58560 Dave
2

Se a execução da função várias vezes tiver o mesmo efeito líquido no sistema que a execução uma vez, a função é idempotente e tem idempotência . Não sei se é isso que você está procurando.

Homem de Lata
fonte
11
Obrigado, esse é outro conceito em que terei que pensar. Talvez alguém possa dizer que idempotente é uma forma mais fraca de livre de efeitos colaterais. Mas não é exatamente o que eu estava procurando. (E, em qualquer caso, não é um substantivo ;-).)
rolve
11
Bom ponto - a forma substantiva é idempotência.
Homem de Lata
3
exemplo de função idempotente chmod:: você pode executá-lo novamente várias vezes, mas não fará mais do que a primeira vez (a menos que os arquivos sejam alterados entre ...). Existem muitos outros. No entanto, não é exatamente "livre de efeitos colaterais", pois muda as coisas e pode impedir que outros programas façam algo também, uma vez que a permissão é alterada.
precisa
11
O termo é provavelmente o mais importante na programação da Web - se você está modificando um banco de dados (adicionando novos usuários, por exemplo) e está lidando com a falta de confiabilidade de uma rede, é necessário garantir que as mensagens duplicadas recebidas pelo servidor não cause problemas inesperados.
Homem de Lata
2
Funções idempotentes definitivamente não são livres de efeitos colaterais. N invocações de uma função idempotente têm o mesmo efeito colateral geral que 1 invocação. Uma função sem efeito é um caso especial de idempotência.
Kaz
1

Você quase conseguiu isso com "liberdade de efeitos colaterais". O problema é que isso significa que os efeitos colaterais são livres (como em "liberdade de efeitos colaterais"). Para ser claro, você precisa de "liberdade dos efeitos colaterais". E observe como "livre de" não combina com "liberdade de"; ambos "livres de algo" e "livres de algo" vão para "liberdade de algo".

Em geral, você encontrará que frases substantivas compostas cuja cabeça é "liberdade" são instintivamente evitadas por falantes nativos de inglês, mesmo sendo gramaticais. Por exemplo, "liberdade de expressão" e "liberdade de opressão" não são chamadas de "liberdade de expressão" e "liberdade de opressão". O significado poderia ser elaborado a partir do contexto ("liberdade de expressão" provavelmente não é "liberdade de expressão" e "liberdade de opressão" não é "liberdade de opressão"), mas as formas simplesmente não são eufônicas . Mesmo que isso seja apenas por desuso, é assim que é.

Trabalhos acadêmicos em CS também são escritos para um público mundial que inclui falantes de inglês não nativos. Se puder, escreva como um falante nativo de inglês.

Kaz
fonte
Obrigado pelas explicações, elas me parecem razoáveis. Faria alguma diferença se eu soletrasse a palavra com traços, como fiz no post original: "liberdade de efeitos colaterais"? Ou isso seria errado?
rolve
Os hífens não alteram o significado. Sobre hífens, veja aqui . A seção sobre Substantivos compostos se aplica.
Kaz
11
A "liberdade de efeitos colaterais" é ótima e amplamente usada. Não há ambiguidade prática porque, dentre as duas análises possíveis, "liberdade de efeitos colaterais" é um conceito perfeitamente sensato que é frequentemente discutido, enquanto "liberdade de efeitos colaterais" é um absurdo sobre o qual ninguém fala. Se uma frase tiver um significado óbvio, as pessoas não procurarão outros significados: elas continuarão lendo o restante da frase.
David Richerby
11
@DavidRicherby Obrigado pelo comentário, eu estava pensando a mesma coisa. Ainda é bom entender que existe uma ambiguidade teórica.
rolve
11
"Liberdade de efeitos colaterais" é a frase idiomática padrão. Há apenas uma coisa que isso poderia significar razoavelmente; logo , é isso que significa. A gramática existe para nos servir, não para nos escravizar.
David Richerby
-1

Você provavelmente quer " ortogonalidade ". Parece se encaixar exatamente na sua definição.

CamilB
fonte
Obrigado pela resposta. No entanto, acho que a palavra ortogonal é usada apenas para conceitos e não para cálculos ou funções. É verdade, no entanto, que duas funções livres de efeitos colaterais podem ser vistas como ortogonais, uma vez que não interferem umas nas outras.
rolve
Meu entendimento é que "ortogonalidade" também foi usada para funções (acho que funções puras foram chamadas de "ortogonais" às vezes). Mas eu posso estar errado, uma vez que se sente "ortogonais", como ele precisa de uma segunda coisa, ou seja, algo ortogonal para outra coisa, por isso, de fato, não pode ser tão geral depois de tudo ...
CamilB
Mas por que você procura um termo separado para funções sem efeitos colaterais? "Função pura" significa exatamente isso: determinístico e sem efeitos colaterais (diz Wikipedia).
CamilB
Esse é exatamente o ponto: quero argumentar sobre funções que são livres de efeitos colaterais, mas não necessariamente determinísticas. Puro já é "demais".
rolve
Eu entendo agora. Seria um exercício interessante procurar funções não determinísticas, livres de efeitos colaterais. Não consigo pensar em nenhum, exceto um átomo, modelado com QM :) Posso recomendar o thesaurus.com? Talvez haja um antônimo de um substantivo relacionado ao efeito colateral por aí. Além disso, talvez a palavra que você precisa seja uma palavra que precise ser adicionada ao inglês de outro idioma. Eu vou deixá-lo sozinho agora :)
CamilB