Yalnızca değişmez referansları veya etiketleri olan bir dil için name değişkenine iyi bir alternatif nedir?


11

Örneğin, işlevsel dillerde, değişkenler tekli atamadır ve değerleri atandıktan sonra değiştirilemez. Yani bağlı olmayan ve bağlı iki durumları vardır , bir kez bağlandıklarında değiştirilemezler.

Şey gibi en uygun matematiksel terim veya başka bir bilgisayar bilimi terimi var mı? Anlamsal olarak varyans veya değişebilirlik anlamına gelmeyen bir şey .

Terim gibi bir şey yoksa ve bu tür yapılara sahip bir dil tasarlıyorsanız, bunlar için değişken kelimesinden başka ne kullanardınız?

Ben am değil gerçekten isteyen anket ben kabul edilen bir endüstri böyle bir şey için (herhangi bir sanayi) terim zaten var olmadığını anlamaya çalışıyorum, fikirler için.


1
Onlara değişmez diyebilirsiniz ;)
Mart'ta

son değişken?
smp7d

9
Bu tür değişkenler için matematiksel terim "değişken" olacaktır. Değişken bir değişken kavramı programlama dilleri resme girene kadar gerçekten yoktu.
sepp2k

1
@ Sepp2k ile aynı fikirde değilim. "Değişken" terimi Leibniz tarafından diferansiyel hesabın geliştirilmesinde kullanılmaya başlanmıştır ve o zamandan beri matematik ve fiziğin bir parçasıdır. Bu değişken miktarların mutlaka değiştirme imkânına ihtiyacı vardır. Aksi takdirde $ \ Delta x $ veya $ dx $ fikri mantıklı değildir.
Michael Bächtold

1
@ sepp2k Katılmıyorum. Orada olduğunu o geleneksel olarak bu şekilde adlandırılan değil rağmen matematik yeniden atama bir kavram. Matematikçiler sürekli olarak x, y diyelerini kendi bağlamlarına dahil ederler (onlara bir değer atamadan) ve onlar hakkında bir şeyler varsayarlar, diyelim ki y + x = 5. Daha sonra x = 1 olduğunu varsayabilir ve y = 4 sonucuna varabilirler. X = 1 varsayımını düşürebilir ve bunun yerine x = 2 olduğunu varsayabilir ve y = 3 sonucuna varabilirler. Benim için bu x'deki bir değişiklik ve hala aynı x değişkeninden bahsediyoruz, çünkü x + y = 5 varsayımı her iki bağlamda da geçerlidir.
Michael Bächtold

Yanıtlar:


4

"Sembol" ne olacak?

Konuşmacının söylediği F # üzerinde bir video gördüm,

Eğer yok atamak bir bir değer değişkeni , sen bağlamak bir bir değer sembolü .

(Hala bunun için referans arıyor.)

Bu tür yapıların değişmez olduğu yerlerde "değişken" kelimesiyle karşılaştığımda sessizce "bağlı sembolü" diye düşünüyorum.


10

Sadece onlara değişkenler deyin. Matematiğin değişkenleri vardır; fonksiyonel diller aynı tür değişkenlere sahiptir.

Ayrıca bkz. Bob Harper'ın bu terminoloji konusundaki makalesi .


Bu aradığım şey boyunca olsa da, sağlanan bağlantı, cevaplardan daha fazla tartışmaya neden olur.

@JarrodRoberson, bağlantılı makaleyi " değişkenin neden uygun bir terim olduğu" şeklinde ele alalım ; "atanabilirler" hakkındaki bölümü görmezden gelmekten çekinmeyin.
Ryan Culpepper

1
evet, görevlendirilebilirler bu tartışmada bir çeşit kırmızı ringa balığı. Ama şahsen ben hala am semantik takılıp değişir kısmını değişkenleri ve bilgisayar bilimleri durumlarda bir sürü matematik terimleri% 100 doğrudan bir ilişki olmadığını gerçeği.

4

Farklı çağrılarda çeşitli değerler alabiliyorsa hala bir değişkendir. Başka bir deyişle, bir kez atandığında değiştirilemese de, bu sembol başlangıçta farklı değerlere atanabilir. Bu , her çağrıldığında aynı değeri içeren bir sabitin aksine .



1

İsim . Aynı şey makul şekilde birden çok adla da adlandırılabilir ( x = 4; y = 4); ve bir isim tanımlandıktan sonra hiçbir zaman referansını değiştirmez. x = 2; x = 3bir ahtapotun bir ahtapot olmadığını söylemek kadar mantıklı değildir.


Bunu beğendim, terimi düşünüyordum labelama namedaha iyi olmasa da adil ve iyi çalışıyor.

0

Neden sadece bu terime sadık kalmıyorsun? % 100 uygun olmayabilir, ancak muhtemelen çözmeye çalıştığınızdan daha fazla yanlış anlamaya neden olacak farklı bir isim seçtiğinizde. Diğer işlevsel dillerin tasarımcıları da aynı soruna sahip olabilirler, ancak "değişken" terimini de kullanmaya karar verdiler.

XSLT (yaygın olarak kullanılan):

http://www.w3schools.com/xsl/el_variable.asp

Haskell:

http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-240003.2

Şema:

http://www.scheme.com/tspl2d/binding.html

Erlang:

http://www.erlang.org/doc/reference_manual/expressions.html

Hepsi de "değişken" terimini kullanıyor.

Tabii ki, diğer dil tasarımcıları F # için burada olduğu gibi "bağlamalar" veya "bağlı değerler" den bahsetmeyi tercih ediyorlar:

http://msdn.microsoft.com/en-us/library/dd233238.aspx


0

Bağlama bağlı olarak "değişken" veya "bağlama" işe yarayacaktır. "Bağlanma" nın letHaskell veya Lisp gibi ifadelerde ortaya çıkma ihtimalinin daha yüksek olduğunu düşünüyorum .

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.