Son zamanlarda oldukça derinleştiğim ve kodumun olduğu gibi amatörce görünmemesini istediğim için, bu yazıyı ortak C ++ deyimleri ararken buldum ... :-P
Perl ile epey zaman geçirdikten sonra, bu dilden, İngilizce veya İspanyolca gibi, doğal dillerde bulunanlara benzer (bazı deyimleri bilecek kadar iyi tanıdığım sadece iki tanesini) buldum.
Bir deyimin “küçük tasarım deseni” gibi olduğunu kabul etmiyorum. Yine de aynı fikirde değilim, daha az olmasına rağmen, bir deyim bir dilde eksiklikle başa çıkmanın bir yoludur.
Belki de Luc Danton'ın cevabı en yakına geliyor ama açıklamama izin ver. Bir deyimin, dili kullananların deyimsel olduğunu düşünüyorum . Genellikle, belki de açık olmasa da, bir işlemi gerçekleştiren veya daha önce görecek kadar akıcı olanlara mantıklı bir şekilde niyetini ifade eden ortak bir ifade veya ifade dizisi .
Perl'e geri dönersek, belki de en iyi bilinen deyim, verileri kompakt ve verimli bir şekilde yapan bir ifade olan " Schwartzian Transform ". Böyle bir işlemi gerçekleştirmenin en açık yolu bu değildir, ancak özlüdür ve daha önce görmüş olanlar anında ne yaptığını bilir.
Dikkate değer başka bir örnek, perl'in doğru / yanlış, zengin operatörler ve operatör önceliği kavramlarından faydalanan " Orcish Manevrası " dır .
Şahsen biraz sevdiğim biri biraz Orcish Manevrasıyla ilgili, ancak bunun için bir isim bilmiyorum:
push @{ $some_hash{$key} ||= [] }, $some_value;
Bu gerçekten şaşırtmaca değil, aksine aksi halde yapmak için birkaç satır alacak bir şeyin net ve kompakt bir ifadesidir. Anahtar karma içinde bulunuyorsa ve gerçek bir değere sahipse, onu bir dizi olarak ayırın ve bu diziye $ some_value değerini itin. Hash elemanı yoksa veya yanlış bir değere sahipse, boş bir dizi atayın, ardından diziyi kaldırın ve itin.
Perl 5.14'ten itibaren, bu deyimin bir kısmının modası geçmiş olduğunu belirtmekte fayda var - itme artık doğrudan dizi başvurusunda çalışabilir, @ @} gerek yok! Ayrıca, Perl 5.10'dan itibaren, || = yerine // = kullanılabilir; bu doğruluk için değil, tanımlılık için denetlenir.