Bağımsız Değişkenlerini Döndüren Bir İşlevin Adı?


34

Hiçbir şey yapmayan, hiçbir argüman almayan ve hiçbir şey döndürmeyen işlev, geleneksel olarak a noopveya no-op olarak adlandırılır. Bir noop örneği aşağıdadır:

function noop(){}

http://en.wikipedia.org/wiki/NOP

Öyleyse, sadece argümanlarını döndürmek ve başka bir şey yapmamak anlamına gelen bir işlevin adı var mı? Bu tür bir işleve örnek:

function(a){return a}


17
Yakın seçmenler için: Bu görüş temelli bir soru değil, kesin bir cevap var.
Daenyth

@Daenyth "Ayrıca sık bir geçiş olarak bilinir" - göründüğü gibi muhtemelen de kesin
tatarcık

2
@gnat geçişi , parametreleri değiştirmeden bir ana yöntemi çağıran bir alt sınıftaki yöntemleri veya ana yöntemi ne döndürürse belirtmek için kullanılır . Fakat süper yöntem hiçbir şeyi veya tamamen farklı bir şeyi geri getiremez. Alınan aynı şeyi iade etmek, geçiş tanımının bir parçası değildir . Eğer öyleyse, bunun nedeni yalnızca belirli ebeveyn yönteminin yapmasıdır. Aslında, hiçbir şey yapmadan OO sınıfı metotlar geçtikleri değeri geri döndürürler oldukça nadirdir.
saat

4
@Snowman Bu bilgilendirilmiş bir ifade değil. Belirli bir girdiye herhangi bir şey yapabilecek bir işlevi döndürebilen Yüksek Dereceli İşlevleri destekleyen herhangi bir dilde, bazı durumlarda girişi değiştirmeyen bir işlevi döndürmek çok yararlıdır. Kontrol akışlarının anahtar kelimeler yerine işlevlerle oluşturulmasını sağlar. Bir bileşik fonksiyon oluşturmak için bir liste (veya başka bir yapı) üzerine katlanırken (farklılık listelerinde olduğu gibi), kimlik fonksiyonu genellikle doğal tohum değeridir.
saat

Yanıtlar:


65

Buna kimlik fonksiyonu denir ve bazen idkategori teorisi ve fonksiyonel programlama dillerinde olduğu gibi kısaltılır .


4
Her ne kadar çoğu programcının bunu bilmesi için resmi bir altyapıya ya da işlevsel programlama bilgisine sahip olmadığı belirtilmelidir. Aynı zamanda bir geçiş olarak da bilinir.
Telastyn

5
Çok sayıda resmi matematik yaptım, ama nedense bunu görene ve yüz yüze gelene kadar cevabı hatırlamadım.
Ixrec

5
@Telastyn Ve Java 8'de hala "kimlik" deniyor. İsim matematik / işlevsel geçmişinden ayrılıyor ve standart oluyor.
Izkata

3
Aslında. Ve terimin yayılma konusundaki farkındalığı ile birlikte biçimsel bir kökü olması, bazı keyfi, dile özgü bir jargondan daha kullanışlı olmasını sağlar.
saat

11
@Telastyn "pass through" neredeyse her zaman OO'da, parametreleri değiştirmeden bir ebeveynin yöntemini çağıran yöntemlere atıfta bulunarak kullanılır. Bu, kimlik fonksiyonu kavramından hem daha spesifik hem de sınırlıdır, çünkü yalnızca OO metodu argümandan başka bir şey getirmeyecektir - veya tamamen farklı bir şey. Dolayısıyla bir geçiş, süper yöntemle aynı şeyi döndürürken, orijinal argümanı geri döndürmek gerekmez. Bunlar farklı şeyler.
saat
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.