"Yan etkisi olmayan" için karşılık gelen isim?


10

Fonksiyonlar veya hesaplamalar için aşağıdaki gibi terimlerimiz vardır:

  • Deterministik - Determinizm
  • Saf - Saflık

Şimdi, yan etkisiz için doğru karşılık gelen isim nedir?

"Yan etki freeness"? "Yan etki özgürlüğü" mü? "Non-yan etkili"?


4
Bu İngilizce Dili ve Kullanımı üzerinde olmamalı mı ? ;) Her durumda, kullanım bağlamınızı verebilir misiniz? Bu tür uygun bir isim kullanmanın doğru olmadığını kabul ediyorum. (Yerli bir Alman olarak sempati duyuyorum; ama kendimizi bu tür canavarları tam anlamıyla tercüme etmemeye zorlamalıyız . Mümkünse Almanca'da da her zaman kötüdürler.)
Raphael

1
Yan etkisi olmayanlar saf olanlardan farklı mıdır?
Andrej Bauer

@ Raphael Ben de oradaki soruyu sormayı düşündüm, ama bir programlama bağlamında doğru karşılık gelen ismi sorduğumda , bilgisayar bilimcisinin bana daha iyi cevaplar verebileceğini düşünüyorum.
13'te

3
@AndrejBauer Safın hem yan etkisiz hem de deterministik olduğunu düşünüyorum , ancak yan etkisiz hala belirleyici olmayabilir.
13'te

@Raphael Aslında çok spesifik bir bağlam yok. Şu anda deterministik, yan etkisiz ve saf işlevlerin birbirleriyle nasıl ilişkili olduğunu düşünüyorum. Ve her biri için bir isim olmadan bu kavramları düşünmek beni tedirgin ediyor. : D
13'te

Yanıtlar:


8

Dilbilgisi soruları için iyi bir kural, sormanız gereken çok karmaşıksa, cümleyi yeniden ifade etmek daha iyidir. Örneğin, "Fonksiyonun X'in yan etki özgürlüğü" daha basit ve zarif bir şekilde yazılmıştır, "Fonksiyonun yan etkisi olmadığı için, X garanti edilmektedir" veya hatta "Fonksiyonun hiçbir yan etkisi yoktur, bu nedenle X Garanti edilir."

Söyledikten sonra, makaleler için anahtar kelimeler isim cümleleri olması beklenir, böylece "yan etki özgürlüğü" kullanmak için bir yer olacaktır.

(Bu arada, "yan etkili olmayan" bir sıfattır.)


(Bu arada, "yan etkili olmayan" bir sıfattır.) İyi yakalama ... Ve cevap için teşekkürler. Ama ne yazık ki, sadece bir cümle için söze ihtiyacım yok.
rolve

8

Bağlama bağlı olarak, "yan etkilerin olmaması" daha okunabilir bir terim olabilir.


7

Kelime nullipotence ait isim formu nullipotent . Vikisözlük'teki ilk tanımdan:

(matematik, bilgi işlem) Yan etkisi olmayan bir eylemi tanımlama . Sorgular genellikle geçersizdir: yararlı veriler döndürürler, ancak sorgulanan veri yapısını değiştirmezler. Idempotent ile kontrast.

(benimkini vurgula)

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


Vay be, bu terimi daha önce hiç duymadım. Yaygın olarak kullanılmıyor gibi görünüyor (Google, "nullipotent" için 16.300 sonuç ve "nullipotence" için 1.580 sonuç bildiriyor ve tarayıcı yazım denetleyicim bunların hiçbirini bilmiyor). Ama sadece onun uğruna kullanabilirdim! Teşekkürler.
13'te

3
Ben bir alan adı uzmanıyım ve bu terimin kullanıldığını gördüğümü sanmıyorum. Kötü bir kelime değil, ama kullanmadan önce mutlaka tanımlanması gerekiyor.
Gilles 'SO- kötü olmayı bırak'

3
Bu, nullpotentve arasında bir fark olduğunu fark etmeme yardımcı oldu nilpotent.
Val

1
@Val, evet, soyut cebir çalışana kadar aynı anlama geldiklerini düşündüm. Özellikle acımasız hissediyorsam, nullpotent'in hiçbir şeyi etkilemediğini, nilpotent ise hiçbir şeyi etkilemediğini söyleyebilirim. : P
Matthew Piziak

3

Bu kavramı referans şeffaflığı olarak öğrendim .

Ancak, bunun gerçekten anlamlı bir terim olup olmadığı konusunda bazı tartışmalar vardır, bu yüzden bunu bir gazetede kullanacaksanız, önce tanımlamanız gerekir.


2
Referans şeffaflığı, yan etkilerin olmaması ile aynı şey değildir. Makroların istenmeyen ad yakalamayı sağa ve sola getirdiği, böylece referans şeffaflığını yok ettiği tamamen işlevsel bir dile sahip olabilirsiniz.
Kaz

@Kaz Referanstan bahsetmişken, bu makro hikaye için referanslarınız var mı?
13'te

@rolve Çok dar görüşlü olabilirim. Bunun aksine, Tunes projesinin yan etkilerden kurtulmakla bağlantısı olan referans şeffaflık tanımına bakın: tunes.org/wiki/referential_20transparency_20and_20state.html
Kaz

@rolve Değerlendirme bağlamında referans şeffaflığı düşünüyordum: kod dönüşümleri ifadelerin yerini değiştirebilir, ancak bu ifadelerdeki referanslar ne olursa olsun düzgün çalışır. Örneğin hijyenik makro sistemlerinin referans olarak şeffaf olduğu söylenir. Bir görünmez kodda derleyici tarafından eklenen aynı ada sahip bir sembol gibi, bir başvuru ile ne anlama geldiği arasında "yanlışlıkla opak" hiçbir şey yoktur.
Kaz

@Kaz: Cevabımda bahsettiğim gibi, 'referans şeffaflığı' ile ilgili çelişkili birkaç tanım var
BlueRaja - Danny Pflughoeft

2

Yan etki özgürlüğü, kullanacağım şey bu.


Ne yazık ki, bunun yan etkilerin özgürlüğe sahip olduğu, durumun yan etkilerden arınmış olmadığı yönünde bir yorumu vardır; bu açıkça "yan etkilerden kurtulma" ile ifade edilir.
Kaz

3
Kesinlikle. Bu doğru olmasına rağmen, pratikte kullanıldığını gördüm.
Dave Clarke

2

Fonksiyonu birden çok kez çalıştırmak, sistem üzerinde bir kez çalıştırmakla aynı net etkiye sahipse, işlev idempotenttir ve idempotency'ye sahiptir . Aradığın şey olup olmadığını bilmiyorum.


1
Teşekkürler, düşünmem gereken başka bir kavram. Belki de idempotent'in yan etkiden daha zayıf olduğu söylenebilir. Ama tam olarak aradığım şey bu değildi. (Ve her durumda bu bir isim değildir. ;-))
13'te

1
İyi bir nokta - isim formu cesaretsizliktir.
Kalay Sihirbazı

3
idempotent fonksiyonunun örneği chmod:: birkaç kez tekrar çalıştırabilirsiniz, ilk defadan daha fazlasını yapmaz (dosyalar arasında değişmedikçe ...). Daha birçokları var. Tam olarak "yan etki ücretsiz" değildir, ancak bazı şeyleri değiştirdiği ve izin değiştikten sonra diğer programların da bir şeyler yapmasını engelleyebileceği için.
Olivier Dulac

1
Terim, web programlamasında muhtemelen en önemlisidir - bir veritabanını değiştiriyorsanız (örneğin yeni kullanıcılar ekliyorsanız) ve bir ağın güvenilmezliğiyle uğraşıyorsanız, sunucu tarafından yinelenen iletilerin alındığından emin olmanız gerekir. beklenmedik sorunlara yol açmayın.
Kalay Sihirbazı

2
İdempotent fonksiyonlar kesinlikle yan etkisi yoktur. Bir idempotent fonksiyonun N çağrıları, 1 çağrı ile aynı genel yan etkiye sahiptir. Etkisi olmayan bir işlev, özel bir idempotency vakasıdır.
Kaz

1

Neredeyse "yan etki özgürlüğü" ile başardınız. Sorun şu ki, bu muhtemelen yan etkilerin serbest olduğu anlamına gelir ("yan etki özgürlüğü" nde olduğu gibi). Açık olmak gerekirse, "yan etkilerden kurtulmak" gerekir. Ve "özgür" ün "özgürlüğü" ile nasıl eşleşmediğine dikkat edin; hem "bir şeyden özgür" hem de "bir şeyden özgür", "bir şeyden özgürlük" e gider.

Genel olarak, başı "özgürlük" olan bileşik isim öbeklerinin dilbilgisel olmalarına rağmen, anadili İngilizce olan kişiler tarafından içgüdüsel olarak ele alındığını göreceksiniz. Örneğin, "konuşma özgürlüğü" ve "baskı özgürlüğü", "konuşma özgürlüğü" ve "baskı özgürlüğü" olarak adlandırılmaz. Anlam bağlamdan çıkarılabilir ("konuşma özgürlüğü" muhtemelen "konuşma özgürlüğü" değildir ve "baskı özgürlüğü" "baskı özgürlüğü" değildir) ancak formlar basitçe öforik değildir . Bu sadece kullanılmamadan olsa bile, böyledir.

CS'deki akademik makaleler, anadili İngilizce olmayan konuşmacıları içeren dünya izleyicileri için de yazılmıştır. Mümkünse, ana dili İngilizce olan biri gibi yazın.


Açıklamalar için teşekkürler, benim için makul görünüyorlar. Orijinal yayında yaptığım gibi kelimeyi tire ile yazsaydım herhangi bir fark yaratır mı: "side-effect-freedom"? Yoksa bu sadece yanlış mı olur?
13'te

Kısa çizgiler anlamını değiştirmez. Tireler hakkında, buraya bakın . Birleşik İsimler bölümü geçerlidir.
Kaz

1
"Yan etki özgürlüğü" gayet iyi ve yaygın olarak kullanılıyor. Pratik olası bir belirsizlik yoktur, çünkü iki olası ayrıştırmadan, "yan etkilerden kurtulma" sıklıkla tartışılan kusursuz bir mantıklı kavram iken, "yan etkilerden kurtulma" hiç kimsenin bahsetmediği saçmalıktır. Eğer bir cümlenin bariz bir anlamı varsa, insanlar başka anlamlar aramayacaklar: cümlenin geri kalanını okumaya devam edecekler.
David Richerby

1
@DavidRicherby Yorum için teşekkürler, aynı şeyi düşünüyordum. Yine de teorik bir belirsizlik olduğunu anlamak güzel.
rolve

1
"Yan etki özgürlüğü" standart, deyimsel ifadedir. Makul olarak ifade edebileceği tek bir şey var; ergo , anlamı bu. Dilbilgisi bize hizmet etmek için var, bizi köleleştirmek için değil.
David Richerby

-1

Muhtemelen " diklik " istiyorsunuz . Tanımınıza tam olarak uyuyor gibi görünüyor.


Cevap için teşekkürler. Ancak, ortogonal kelimesinin hesaplama veya fonksiyonlar için değil, sadece kavramlar için kullanıldığını düşünüyorum. Bununla birlikte, yan etkisi olmayan iki fonksiyonun birbirine dik olmadığı için dik olarak görülebileceği doğrudur.
13'te

Anladığım kadarıyla "diklik" işlevler için de kullanılmış (bence saf işlevlere bazen "dik" denir). Ama yanlış olabilirim, çünkü "dik" ikinci bir şeye ihtiyaç duyduğunu hisseder, yani başka bir şeye dik bir şey, bu yüzden sonuçta bu kadar genel olamaz ...
CamilB

Fakat neden yan etkisi olmayan fonksiyonlar için ayrı bir terim arıyorsunuz? "Saf fonksiyon" tam olarak şu anlama gelir: deterministik ve yan etkisi olmayan (Wikipedia diyor).
CamilB

Bu tam olarak önemli: Yan etkisi olmayan ancak mutlaka deterministik olmayan fonksiyonlar hakkında mantıklı olmak istiyorum. Saf zaten "çok fazla" dır.
rolve

Şimdi anlıyorum. Deterministik olmayan yan etkisiz işlevler aramak ilginç bir alıştırma olacaktır. QM ile modellenmiş bir atom haricinde hiç düşünemiyorum :) thesaurus.com'u tavsiye edebilir miyim? Belki orada yan etki ile ilgili bir isim zıtlığı vardır. Ayrıca, belki de ihtiyacınız olan kelime, başka bir dilde İngilizce'ye eklenmesi gereken bir kelimedir. Seni şimdi yalnız bırakacağım :)
CamilB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.