Apa alternatif yang baik untuk variabel nama untuk bahasa yang hanya memiliki referensi atau label yang tidak berubah?


11

Misalnya, dalam bahasa fungsional, variabel adalah penugasan tunggal dan nilainya tidak berubah setelah ditetapkan. Jadi mereka memiliki dua negara tidak terikat dan terikat , sekali terikat mereka tidak dapat diubah.

Apakah ada istilah matematika atau istilah ilmu komputer lainnya yang paling sesuai untuk hal seperti itu? Sesuatu yang secara semantik tidak menyiratkan varians atau mutabilitas.

Jika tidak ada tidak ada istilah seperti dan jika Anda merancang bahasa yang memiliki konstruksi seperti itu, apa selain variabel kata yang akan Anda gunakan untuk ini?

Saya tidak benar - benar mencari polling untuk ide-ide, saya mencoba mencari tahu apakah sudah ada istilah industri (industri apapun) yang diterima untuk hal semacam itu.


1
Panggil saja mereka tidak berubah ;)
Oded

variabel terakhir?
smp7d

9
Istilah matematika untuk jenis variabel ini adalah "variabel". Konsep variabel yang bisa berubah tidak benar-benar ada sampai bahasa pemrograman memasuki gambar.
sepp2k

1
Saya tidak setuju dengan @ sepp2k. Istilah "variabel" diperkenalkan oleh Leibniz dalam pengembangan kalkulus diferensial, dan telah menjadi bagian dari matematika dan fisika sejak saat itu. Kuantitas variabel itu tentu perlu kemungkinan untuk berubah. Kalau tidak, gagasan $ \ Delta x $ atau $ dx $ tidak masuk akal.
Michael Bächtold

1
@ sepp2k saya tidak setuju. Ada adalah sebuah konsep re-tugas dalam matematika, meskipun itu secara tradisional tidak disebut seperti itu. Matematikawan secara konstan memperkenalkan variabel katakanlah x, y dalam konteksnya (tanpa memberi mereka nilai) dan menganggap sesuatu tentang mereka, katakanlah y + x = 5. Selanjutnya mereka dapat mengasumsikan bahwa x = 1 dan menyimpulkan y = 4. Mereka dapat membatalkan asumsi x = 1 dan menganggap x = 2 sebagai gantinya, dan menyimpulkan y = 3. Bagi saya itu adalah perubahan dalam x, dan kita masih berbicara tentang variabel x yang sama, karena asumsi x + y = 5 berlaku di kedua konteks.
Michael Bächtold

Jawaban:


4

Bagaimana dengan "simbol"?

Saya melihat video di F # di mana pembicara berkata,

Anda tidak menetapkan nilai ke variabel , Anda mengikat nilai ke simbol .

(Masih mencari referensi untuk ini.)

Setiap kali saya menemukan kata "variabel" di tempat-tempat di mana konstruksi seperti itu tidak berubah, saya diam-diam berpikir "simbol terikat."


10

Sebut saja mereka variabel. Matematika memiliki variabel; bahasa fungsional memiliki jenis variabel yang sama.

Lihat juga esai ini oleh Bob Harper tentang masalah terminologi ini .


Meskipun ini sesuai dengan apa yang saya cari, tautan yang disediakan, hanya menimbulkan lebih banyak perdebatan daripada jawaban.

@JarrodRoberson, ambil saja esai yang ditautkan sebagai "mengapa variabel adalah istilah yang sesuai"; merasa bebas untuk mengabaikan bagian tentang "tugas".
Ryan Culpepper

1
yeah, assignables adalah jenis red-herring dalam diskusi itu. Tapi secara pribadi saya masih semantis terjebak pada beragam bagian dari variabel dan fakta bahwa ilmu komputer tidak korelasi langsung 100% untuk istilah matematika dalam banyak kasus.

4

Itu masih variabel jika dapat mengambil berbagai nilai dalam doa yang berbeda. Dengan kata lain, meskipun tidak dapat diubah setelah ditetapkan, simbol tersebut dapat ditetapkan ke nilai yang berbeda pada awalnya. Itu berbeda dengan konstanta yang berisi nilai yang sama setiap kali dipanggil.


1

konstanta, atau const mungkin tidak asing bagi orang yang menggunakan bahasa seperti C dan C ++,


1

Nama . Hal yang sama dapat secara wajar dipanggil dengan beberapa nama ( x = 4; y = 4); dan sebuah nama, setelah didefinisikan, tidak pernah mengubah rujukannya. x = 2; x = 3sama tidak masuk akalnya dengan mengatakan bahwa gurita bukanlah gurita.


Saya suka ini, saya sedang mempertimbangkan istilah labeltetapi namebekerja dengan baik dan baik jika tidak lebih baik.

0

Mengapa tidak tetap dengan istilah itu? Ini mungkin tidak 100% tepat, tetapi ketika Anda memilih nama yang berbeda yang mungkin akan menyebabkan lebih banyak kesalahpahaman daripada yang Anda coba pecahkan. Desainer bahasa fungsional lain mungkin memiliki masalah yang sama, tetapi mereka memutuskan untuk menggunakan istilah "variabel".

XSLT (yang banyak digunakan):

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

Haskell:

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

Skema:

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

Erlang:

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

Semuanya menggunakan istilah "variabel" juga.

Tentu saja, perancang bahasa lain lebih suka berbicara tentang "binding" atau "nilai-nilai terikat", seperti di sini untuk F #:

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


0

Tergantung pada konteks "variabel" atau "mengikat" akan bekerja. Saya pikir "mengikat" lebih mungkin muncul dalam pernyataan seperti letdi Haskell atau Lisp.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.