Unicode karakterleri değişken isimlerinde kullanmak kötü mü? [kapalı]


82

Geçenlerde Pyleghon 3'e göre bir AllegSkill sıralama algoritması uygulamaya çalıştım.

İşte matematiğin neye benzediği:

alt metin

Hayır, gerçekten.

İşte o zaman yazdıklarım:

t = (µw-µl)/c  # those are used in
e = ε/c        # multiple places.
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

Aslında Python 3'ün kabul edilemez ya ²da değişken isimler olarak talihsiz olduğunu düşündüm .

>>> √ = lambda x: x**.5
  File "<stdin>", line 1
    √ = lambda x: x**.5
      ^
SyntaxError: invalid character in identifier

Aklımdan mı çıktım? Yalnızca ASCII sürümüne başvurmalı mıydım? Neden? Yukarıdakilerin sadece bir ASCII versiyonunun formüllerle eşdeğerliği doğrulamak zor olmaz mıydı?

Unutmayın, bazı Unicode gliflerinin birbirlerine çok benziyor ve bazıları (ya da ▗▖ ya da like) ya da written yazılı kodlarda bir anlam ifade etmiyorlar. Ancak, bu Matematik veya ok glifleri için durum böyle değil.


İstek başına, yalnızca ASCII sürümü şu satırlar boyunca bir şey olurdu:

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

... algoritmanın her adımı başına.


58
Bu delilik, tamamen okunamıyor ve söylenemez derecede havalı.
Dominique McDonnell


3
Python'un aritmetik işlemleri değişken olarak kabul etmemesini çok iyi buluyorum. Bir kare kök işareti, bir kare kök alma işlemini belirtmeli ve değişken olmamalıdır.
David Thornley

4
@David, Python'da böyle bir ayrım yoktur. Gerçekten de, sqrt = lambda x: x**.5bana alır işlevi (daha doğrusu bir çağrılabilir): sqrt(2) => 1.41421356237.
badp

4
OutputStream.🚽;

Yanıtlar:


54

Sadece değiştirilmesi kuvvetle hissediyorum σile sveya sigmabeyinde ölü sınırındaki, aptalca olur.

Potansiyel kazanç nedir? İyi, görelim bakalım …

  • Okunabilirliği arttırır mı? Hayır, en ufak değil. Öyle olsaydı, orijinal formül hiç şüphesiz Latin harflerini de kullanırdı.

  • Yazılabilirliği arttırır mı? İlk bakışta, evet. Fakat ikincisi, hayır. Çünkü bu formül asla değişmeyecek (peki, “asla”). Normalde kodu değiştirmeye, ne de bu değişkenleri kullanarak genişletmeye gerek kalmayacak. Yani yazılabilirlik - sadece bir kez - sorun değil.

Şahsen, programlama dillerinin matematiksel formüllere göre bir avantajı olduğunu düşünüyorum: anlamlı, anlamlı tanımlayıcılar kullanabilirsiniz. Matematikte bu normal bir durum değildir, bu yüzden onları bir zamanlar Yunan yapan tek harfli değişkenlere başvururuz.

Ancak sorun Yunanca değil. Açıklayıcı olmayan, tek harfli tanımlayıcılar.

Yani ya programlama dili sonuçta, eğer ... Orijinal notasyonu tutmak yapar tanımlayıcılarda Unicode destekleyen, bu nedenle hiçbir teknik engel yoktur. Veya anlamlı tanımlayıcıları kullanın. Sadece Yunan gliflerini Latin glifleriyle değiştirmeyin. Veya Arapça olanlar veya Hintçe olanlar.


3
Programlama dili kullanımını desteklese de, bazı araçlar unicode karakterleri okuyamaz. Unicode olmayan değişken isimleri kullanmak için beyin ölümü kararı vermezdim ve bu hala görevinizden 2.5 yıl sonra geçerlidir.
Gary S. Weaver

44
@Gary “Bazı araçlar Unicode'u okuyamaz” - bu yüzden aletleri değiştirin, onlar berbat. Üzgünüz, 2013 oldu ve sıfır sempati duyuyorum ve bu tür araçlar için daha az sabrım var. Sürekli olarak arızalı aletlere yemek servisi, ilerlemeyi önler.
Konrad Rudolph

3
@KonradRudolph Amacım, bazı araçların herhangi bir nedenle Unicode'u desteklememesi ve desteklememesidir, bu nedenle "aletleri değiştirin" her zaman doğru cevap değildir. Unicode'un iyi olduğu ve araçların onu anlaması gerektiği konusunda hemfikirim, ama bu her zaman bir seçenek değil.

3
@John “Araçları değiştir” in uygun bir cevap olduğunu düşünüyorum. Özellikle örneğiniz böyle bir durumu gösterir: Java .propertiesdosyalarının ayrıştırılması çok önemlidir. Gerçekten, .propertiesdosyalar tarafından desteklenen, Unicode'u desteklemeyen bir takım zinciri ile çalışmaya başlamışsanız, söz konusu takım zincirini bırakmak tamamen mantıklıdır (ve ya kendiniz değiştirin, bir alternatif bulun ya da en kötü durumda, bir tane devreye alın) ). Elbette bu eski sistemler için geçerli değildir. Ancak, eski sistemler için, en iyi uygulamalara ilişkin düşüncelerden hiçbiri geçerli değildir.
Konrad Rudolph

8
Bahsettiğiniz bu "takas" sorunları öncelikle Java ve Windows geliştiricilerin sorunu gibi görünüyor. Linux dünyasının çoğu on yıl önce UTF-8'de standardize edilmiştir. Kesinlikle bir alet zinciri problemi. Kötü araçları kullanmayı bırak.
zengin hatırlatma,

33

Şahsen, tekrar yazmak için karakter haritasını çıkarmam gereken kodu görmekten nefret ediyorum. Unicode, algoritmadakilerle yakından eşleşse de, gerçekten okunaklı olması ve düzenlenmesi çok acıyor. Bazı editörler bu karakteri destekleyen bir yazı tipine bile sahip olmayabilir.

Peki ya bir alternatif ve sadece yukarı //µ = uve her şeyi ascii'ye yaz.


14
Bu arada, tüm klavyelerin standart kodlama tuşlarını rahatça ortaya çıkardığını varsaymayın. Benim klavye düzeni ihtiyacı üç tip anahtarları {ve }(ki btw uçbirim başarısız) ve tamamen yoksun `ve ~ben özel bir keymap kullanmıyordum, nasıl herhangi Bash komut bir karakter haritası kullanmak için bana ihtiyaç olmaz ...? :)
badp

4
Yerli klavyemin yanına Yunanca bir klavye yerleştirdim ve tek bir tuşa basanlar arasında geçiş yapabilirim. Bu, IM / e-postadaki matematikten bahsettiğinizde faydalıdır ... ve onu zaten python komut dosyalarında kullanmayı düşündüm.
liori

18
Ugh. Sadece Yunanca harfleri düz harflerle değiştirmek mi? Hiçbir şekilde kazanç yok. Anlamlı değişken isimleri kullanın veya kağıttaki isimleri kullanın. Yaratıcı olmak için sebep yok.
Konrad Rudolph 16

12
Sadece µ ve mix ... ile karıştırmayın
endolith

4
Makul editörler Unicode için bu şekilde kod düzenlemeyi kolaylaştıran makul giriş yöntemlerine sahiptir. Örneğin, Emacs (diğer şeylerin yanı sıra) TeXve rfc1345. TeXkulağa nasıl geliyorsa; sizin \sigmaiçin σve \toiçin yazmanıza izin verir . rfc1345Size gibi bazı kombinasyonlar verir &s*için σve &->için . Genel bir kural olarak, programcıları Emacs'tan daha az yetenekli editörleri kullanarak ağırlamaktan endişelenmiyorum.
Tikhon Jelvis

31

Bu argüman unicodes yazmak veya Yunanca harfleri okumakla ilgili hiçbir probleminiz olmadığını varsayar.

İşte argüman: pi veya circular_ratio ister misiniz?

Bu durumda, pi'yi dairesel_ratioya tercih ederim çünkü ilkokuldan beri pi'yi öğrendim ve pi'nin tanımının tuzuna değen her programcıya iyi bir şekilde gömülmesini beklerim. Bu nedenle _ yazmayı dairesel_ratio anlamına gelmezdi.

Ancak, ne hakkında

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

veya

σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

Bana göre, her iki sürüm de tıpkı ilkokulda bu formülü öğrenmediğim hariç , aynen piveya πolduğu gibi eşit derecede opak . ve bana, ya da kodu okuyan bir başkasına hiçbir şey ifade etmiyor ve hiçbirini kullanmak daha iyi yapamıyor.winner_sigmaWwinσw

Dolayısıyla, açıklayıcı adlar, örneğin total_score, winning_ratiovb. Kullanılması, okunaklılığı yalnızca Yunanca harfleri telaffuz eden ascii adlarını kullanmaktan çok daha iyi hale getirir . Sorun Yunanca harfleri okuyamıyorum değil, karakterleri (Yunanca veya değil) değişkenin "anlamı" ile ilişkilendiremiyorum.

Siz yorum yaparken kesinlikle sorunu kendi başınıza anladı: You should have seen the paper. It's just eight pages.... Sorun, değişken isminizi okunabilirlikten ziyade tek harf isimlerini seçen bir kağıda dayandırırsanız (yunan olup olmadıklarına bakılmaksızın), o zaman insanlar harfleri ilişkilendirebilmek için kağıdı okumak zorunda kalacaklardır. "anlamına gelen"; Bu, insanların kodunuzu anlayabilmesi için yapay bir engel oluşturduğunuz anlamına gelir ve bu her zaman kötü bir şeydir.

Hatta ASCII sadece dünyada yaşıyoruz, hem zaman a * b / 2ve alpha * beta / 2eşit derecede opak render vardır height * base / 2, üçgen alanı formülü. Tek harfli değişkenleri kullanmanın okunaksızlığı, formül karmaşıklığı arttıkça üssel olarak artar ve AllegSkill formülü kesinlikle önemsiz bir formül değildir.

Tek harfli değişken yalnızca basit bir döngü sayacı olarak kabul edilebilir, ister Yunan tek harfli isterse tek harfli olsun, umrumda değil; başka hiçbir değişken yalnızca tek bir harften oluşmamalıdır. İsimleriniz için Yunanca harfleri kullanıp kullanmamanız umrumda değil, ama onları kullandığınızda, başka bir yerde rastgele bir makale okumak zorunda kalmadan bu isimleri bir "anlam" ile birleştirebileceğimden emin olun.

İlkokuldayken, matematiksel ifadeleri temel semboller için +, -, ×, ÷ gibi semboller kullanarak görmek istemezdim ve √ () bir kare kök işlevi olur. İlkokuldan mezun olduktan sonra, yeni sembollerin eklenmesiyle ilgilenmezdim: integration entegrasyon için. Trende dikkat edin, bunların hepsi operatör. Operatörler değişken isimlerden çok daha fazla kullanılır, ancak daha az sıklıkla tamamen farklı bir anlam için tekrar kullanılırlar (matematikçilerin operatörleri tekrar kullanması durumunda, yeni anlam genellikle eski anlamın bazı temel özelliklerini tutar; değişken isimlerini tekrar kullanırken

Sonuç olarak, hayır, değişken isimleri için Unicode karakterleri kullanmak fena değil; ancak değişken isimler için tek harf isimleri kullanmak her zaman kötüdür ve Unicode isimleri kullanmasına izin vermek tek harf değişken isimlerini kullanma lisansı değildir.


9
Dürüst olmak gerekirse, buradaki formülleri kullanmak error_on_measured_skill_with_99th_percent_confidenceyerine kullansam bile anlamsız geliyor sigma.
15

4
@ Badp: Uzun isimler! = İyi isimler. Bununla birlikte, iyi bir isim seçmenizin imkansız olduğu durumlar vardır (örneğin, sadece formülü anladığınızda, ancak formülün her bölümünün ne yaptığını tam olarak anlamadığınızda (tamamen farklı bir anlama düzeyi alır)), Bu durumda, en iyi ikinci alternatif, kıçınızı bazı yorumlar ile örtmektir (harici bir kağıda göndermekten daha iyidir). Değişken isimlerinin neyi ifade ettiğini açıklayan bir veri sözlüğü ekleyin, örneğin // σw = skill level measurement error, etc
Lie Ryan

1
@badp: Dürüst olmak gerekirse, sadece bu bilgiyle, sigma bazı geçiştirici faktörlere atıfta bulunur (tabiri caizse), bana formülü anlamada sigma'nın bana çarptığı şeyden biraz daha iyi bir anlam verir. Formülün anlaşılması zor olduğunda, üstüne daha fazla opaklık eklemek istemezsiniz.
Yalan Ryan

2
Evet. Bu. Ne yazık ki, cevabımı yazarken göz ardı ettim.
Konrad Rudolph 16

3
İstatistikleri ile ilgili bir konuda çalışan herkes σ’nun “standart sapma” anlamına geldiğini bilir . Bu alanda çok iyi bilinen bir standart sembol.
TRiG

14

Kodu anladın mı? Okuması gereken herkes var mı? Eğer öyleyse, sorun yok.

Şahsen ben sadece ASCII kaynak kodunun arkasını görmekten memnun olurum.


Bitti. (Sanırım son satır, kodun yalnızca ASCII sürümünü görmek ister miydiniz?) [] (Http: // ~)
badp

4
@ badp: Hayır, sadece ASCII kodunun ölümünü görmek istiyordum.

Windows 1252 sistemine girerken Unicode kaynak dosyalarına ne olduğunu görmeye başlayana kadar ...

1
@ Thorbjørn: Malzeme Listesi'ni içeriyorlarsa, umarım hiçbir şey olmaz.

9

Evet, aklını kaçırdın. Makaleye şahsen bir yorumda kağıtla ve formül numarasına atıfta bulunup her şeyi doğrudan ASCII'ye yazardım. O zaman ilgilenen herkes kodu ve formülü ilişkilendirebilir.


5
Kod ve formülün ilk etapta eşleştiğinden emin olmak benim için zordu ...
badp

10
@ Paul: Neyse ki, Unicode> 10 yaşında, bu yüzden itirazda bulunuldu. Ve farklı UTF'ler arasında kesin bir kazanan olmamasına rağmen, bu bir sorun değil: bir olması gerekmiyordu. Onları birbirinden ayırmak yazılım için önemsizdir.
Konrad Rudolph

1
@Konrad: Ben 10 yıldır anlamına şimdi . Çok sayıda program hala Unicode'u desteklememektedir. Dahası, iddialarına katılmıyorum - Her 3 utfs'i de kapsayan genel bir ters rutin yazmak önemsiz değildir. Açık bir kazanan olması gerekiyor. 3 farklı UTF'yi desteklemenin bir anlamı yoktur (diğer kod sayfalarının hala mevcut olduğunu düşünmemize izin verin).
Paul Nathan

3
@Paul: Bir "jenerik ters rutin" yazmak için ne sıklıkta ihtiyacınız var? Üç UTF farklı amaçlara hizmet eder ve konsolidasyon isteğinizi asla elde edeceğinizi sanmıyorum.
Dean Harding,

7
@Paul: bu programları boşver. Unicode'u nasıl kullanacağını bilen yeterince iyi editör var. Eğer bir editör hala çoğunluğa ulaşmadıysa, ekonomik seçimin bununla ilgilenmesine izin verin. Ve Dean'in dediği gibi, UTF'ler farklı amaçlara hizmet ediyor. Var olmaları iyi bir şey. Ve çoklu ters rutinlerindeki noktayı göremiyorum. Sadece bir kez yazmanız gerekir (şu an için normalleştirme formlarını yok sayarak): bireysel UTF'ler için değil, kod noktaları için.
Konrad Rudolph

5

Unicode değişken isimlerini kullanmanın iki nedenden dolayı kötü bir fikir olduğunu söyleyebilirim:

  1. Onlar yazmak için bir PITA.

  2. Genellikle İngilizce harflerle neredeyse aynı görünüyorlar. Bu, Yunanca harfleri matematik notasyonunda görmekten nefret etmemin aynı nedenidir. R 'den p' ye söylemeyi deneyin. Kolay değil.


6
Bunları yazmak için ne kullandığınıza bağlı.
Endolit

4

Bu durumda, karmaşık bir matematik formülü, bunun için gidin derim.

Yirmi yılda bu karmaşık bir şeyi hiçbir zaman kodlamak zorunda olmadığımı söyleyebilirim ve Yunanca harfler orijinal matematiğe yakın durur. Eğer anlayamıyorsanız, sürdürmemelisiniz.

Şimdiye kadar Il ve beni vasiyet σ bataklığa standart kod korumak varsa, diyen ben edecektir nereye canlı öğrenmek ...


3
  • Pro: güzel görünüyor
  • Con: unicode karakterler ve tüm anlamlar takım zincirinde kaybolabilir (editör, kod formatlayıcı, sürüm kontrolü, eski derleyici)

Risk sizin için ne kadar büyük? Kazanç riskten ağır basıyor mu?


2
Alet zinciri? Hangi alet zinciri?
Kasım’da

2
Editör, kod biçimlendirici, sürüm kontrolü, eski derleyici. Dosyanıza dokunan her araç ve kişi. Unicode dosyalarla uğraşan araçlar konusunda kötü bir deneyim yaşadım, YMMV.
LennyProgrammers

2

Çok uzak olmayan bir gelecekte, Klasik Yunanca karakterler de dahil olmak üzere düzenleme metinlerini yazmayı kolaylaştıran metin editörleri / IDE'ler / web tarayıcıları kullanacağız. (Ya da belki de hepimiz bunu kullanmayı öğrendik "gizli" "şu anda kullandığımız araçlardaki işlevsellik ...)

Ancak, bu gerçekleşene kadar, program kaynak kodundaki ASCII olmayan karakterler, birçok programcının başa çıkması zor olacak ve bu nedenle başkası tarafından bakımı gerekebilecek uygulamalar yazıyorsanız, kötü bir fikirdir.

(Bu arada, Yunanca karakterlere sahip olmanızın ancak Python tanımlayıcılarında karekök işaretlerinin olmamasının nedeni basittir. Yunanca karakterleri Unicode Harfleri olarak sınıflandırılır, ancak karekök işareti harfsizdir; bkz. Http://www.python.org / dev / peps / pep-3131 / )


Doğrudan giriş yapamayan kullanıcılar için karakterleri çevirebilecek bir IME yapmanın harika bir fikir olacağını düşünüyorum.
AndrejaKo

Evet, DVORAK’a geçtiğimiz zaman aşağı yukarı. :(
badp

1
@AndrejaKo Linux, LaTeX stili komutları kabul eden bir IME'ye sahiptir - yani, siz \muyazınız ve onu desteklemektedir µ.
15

@ badp Çok teşekkürler! Bir dahaki sefere ben bunu deneyeceğim!
AndrejaKo

Emacs, Unicode sembollerini yazmayı kolaylaştıran bir sürü güzel giriş yöntemini destekler. (Kullandığım bir TeX dahil.) Emacs fütüristik değil. (O ise tabii ki, müthiş.)
Tikhon Jelvis

2

Hangi dili / derleyiciyi kullandığınızı söylemediniz, ancak genellikle değişken isimleri için kural alfabetik bir karakter veya alt çizgi ile başlamalıdır ve yalnızca alfanümerik ve alt çizgi içermelidir. Unicode √, bir harf yerine matematiksel bir simge olduğu için alfanümerik sayılmaz. Ancak σ (Yunanca alfabesinde olduğu için) olabilir ve á muhtemelen alfanümerik sayılır.


1

Aynı soruyu StackOverflow'a da gönderdim

Kesinlikle matematikle ilgili ağır problemlerde unicode kullanmaya değer olduğunu düşünüyorum çünkü doğrudan ASCII ile imkansız olan formülü doğrudan okumayı mümkün kılıyor.

Bir hata ayıklama oturumu hayal edin: tabii ki kodun doğru olup olmadığını görmek için hesaplanması gereken formülü her zaman el ile yazabilirsiniz. Fakat zamanın yüzde doksanı, canını sıkmayacak ve böcek uzun süre boyunca gizli kalabiliyor. Ve hiç kimse bu 7-satırlı, basit ASCII formülüne bakmaya istekli değildir. Tabii ki, unicode kullanmak, tex-render bir formül kadar iyi değil, ama çok daha iyi.

Uzun tanımlayıcı isimler kullanmanın alternatifi uygun değildir çünkü matematikte, tanımlayıcı kısa değilse, formül daha da karmaşık görünecektir (neden XVIII. Yüzyıldaki insanların neden "artı" ile "+" değiştirmeye başladıklarını düşünüyorsunuz? ve "eksi" ile "-"?).

Kişisel olarak, bazı abonelikler ve üst simgeler de kullanırdım (Sadece bu sayfadan kopyalayıp yapıştırırım ). Örneğin: (python t tanımlayıcı olarak izin verildi)

√ = math.sqrt #function alias
c² = c**2
σʷ² = σʷ**2
γ² = γ**2
σ′ʷ = √(σʷ² * (1 - (σʷ²/c²)*Wʷⁱⁿ(t, e)) + γ²)

Üst kodları kullandım çünkü unicode'da eşdeğer bir alt simge yok. (Ne yazık ki, unicode alt karakter karakteri çok sınırlıdır. Umarım bir gün, unicode aboneliğinin diakritik, yani bir abonelik için bir karakter ve abonelik mektubu için bir başka karakter kombinasyonu olarak kabul edilir)

Sonuncusu, ASCII olmayan karakter kullanımı hakkındaki bu konuşmanın öncelikli olarak önyargılı olduğunu düşünüyorum, çünkü çoğu programcı asla "yoğun matematiksel notasyon formülü" ile uğraşmaz. Bu nedenle, bu sorunun o kadar önemli olmadığını düşünüyorlar, çünkü ASCII olmayan tanımlayıcıların kullanılmasını gerektiren önemli bir kod bölümünü asla deneyimlemediler. Onlardan biriyseniz (ve yakın zamana kadar öyleydim), şunu göz önünde bulundurun: "a" harfinin ASCII'nin bir parçası olmadığını varsayalım. O zaman önemsiz olmayan matematik formülleri hesaplanırken hiçbir Yunan harfinden, aboneden, üst yazıdan yoksun olma sorunu hakkında oldukça iyi bir fikre sahip olacaksınız.


0

Bu kod sadece kişisel projeniz için mi? Eğer öyleyse, fındık git, ne istersen kullan.

Bu kod başkalarının kullanması için mi kullanılıyor? yani, ve bir tür açık kaynak uygulaması? Öyleyse, muhtemelen sadece sorun istiyorsunuz çünkü farklı programcılar farklı editörler kullanıyor ve tüm editörlerin unicode'u doğru bir şekilde destekleyeceğinden emin olamazsınız. Ayrıca, kaynak kod dosyası type'd / cat'd olduğunda tüm komut kabukları bunu doğru göstermeyecek ve html içinde görüntülemeniz gerekirse sorunlarla karşılaşabilirsiniz.


0

kişisel olarak, programlama dillerini bu bağlamda matematikçiler için bir araç olarak görmeye motive oluyorum, çünkü aslında hayatımda buna benzeyen bir matematik kullanmıyorum. : D Ve elbette, neden ɛ veya σ veya neyse kullanmıyorsunuz - bu bağlamda, aslında daha okunaklı.

(Her ne kadar söylemem gerekse de, tercihim, üst simge numaralarını değişken yöntem adlarını değil doğrudan yöntem çağrıları olarak desteklemektir. Örneğin 2² = 2 ** 2 = 4 vb.


-2

Hem bu ne σ, ne W, nedir ε, cve ne γ?
Değişkenlerinizi, amaçlarının ne olduğunu açıklayacak şekilde adlandırmalısınız.
ASCII-sürümü daha iyi olmasına rağmen, Unicode ya da ASCII-versiyonunu terk etmemi sağlayacak kişiyi şahsen yenerdim.

Ne kötüdür değişkenleri çağıran olduğu σya sya sigmaya valueya var1bu herhangi bir bilgi vermemektedir, çünkü.

Kodunuzu İngilizce olarak yazdığınızı varsayalım (nerden olursanız olun gerektiğine inanıyorum), ASCII değişkenlerinize anlamlı isimler vermek için yeterli olmalıdır, bu nedenle Unicode'a gerçek bir ihtiyaç yoktur.


2
Ya kağıdın bir kopyasını / yapışmasını yaptıysa ve bir karakter değişkeni isimlerine rağmen yorum olarak kaynak kodunun bir parçası yaptıysa?
Brian,

19
Bu değişken adlarının birçoğunun, problem alanına aşina olanlar için güçlü anlamları vardır. Etki alanına aşina olan birine, İngilizce isimler sigma veya rho gibi isimlerden daha az okunabilir olabilir .
dsimcha

3
Korkarım ki bunun gibi rank_error_with_99_pct_confidencebir şey biraz uzun sürüyor ve formülleri anlaşılması daha kolay hale getirmiyor. AllegSkill / TrueSkill, bu sigmaya çağrı yapar, bu nedenle sahip oldukları alana özel adı korumamın benim için tamamen kabul edilebilir olduğuna inanıyorum.
15

3
@ badp: iyi isimler özlü ve açıklayıcıdır; ancak tam olarak tanımlayıcı olması gerekmez. Sigma'nız için, bir rank_erroryerde belgelere / yorumlara yüzde 99 güven hakkında fazladan ayrıntı kullanmak ve kullanmak çok iyidir .
Yalan Ryan

1
@ dsimcha: Belli bir alana aşina olanların, hiç duymadıklarından çok daha nadir olduğunu düşünüyorum. Ve bence etki alanına aşina olanlar, basit ingilizce isimlerle başa çıkacaklar, oysa aşina olmayanlar, her şey Yunanca tek harfli değişkenler tarafından gizlenirse neler olduğunu tam olarak anlayamayacak.
back2dos

-2

İyi bilinen matematiksel kökenlere sahip değişken isimleri için bu kesinlikle kabul edilebilir - hatta tercih edilir. Ancak, kodu dağıtmayı düşünüyorsanız, bu değerleri bir modüle, sınıfa vb. Yerleştirmelisiniz, böylece IDE otomatik tamamlama garip karakterleri "yazarak" işleyebilir.

Tanımlayıcıda √ veya ² kullanma - çok değil.

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.