Một thay thế tốt cho biến tên cho một ngôn ngữ chỉ có các tham chiếu hoặc nhãn bất biến là gì?


11

Ví dụ, trong các ngôn ngữ chức năng, các biến là phép gán đơn và giá trị của chúng là bất biến khi được gán. Vì vậy, họ có hai trạng thái không bị ràng buộcràng buộc , một khi bị ràng buộc, họ không thể thay đổi.

Có một số thuật ngữ toán học hoặc thuật ngữ khoa học máy tính khác phù hợp nhất như điều đó không? Một cái gì đó về mặt ngữ nghĩa không ngụ ý phương sai hoặc tính biến đổi.

Nếu không tồn tại, chẳng hạn như thuật ngữ và nếu bạn đang thiết kế một ngôn ngữ có cấu trúc như vậy, bạn sẽ sử dụng biến nào ngoài biến từ này cho các từ này?

Tôi không thực sự tìm cách thăm dò ý kiến, tôi đang cố gắng tìm hiểu xem đã có một thuật ngữ được chấp nhận (bất kỳ ngành nào) cho một điều như vậy.


1
Chỉ cần gọi họ là bất biến ;)
Oded

biến cuối cùng?
smp7d

9
Thuật ngữ toán học cho các loại biến này sẽ là "biến". Khái niệm về một biến có thể thay đổi đã không thực sự tồn tại cho đến khi các ngôn ngữ lập trình đi vào hình ảnh.
sepp2k

1
Tôi không đồng ý với @ sepp2k. Thuật ngữ "biến" được Leibniz đưa ra trong quá trình phát triển phép tính vi phân, và nó đã trở thành một phần của toán học và vật lý kể từ đó. Những đại lượng thay đổi nhất thiết cần khả năng thay đổi. Mặt khác, ý tưởng về $ \ Delta x $ hoặc $ dx $ không có ý nghĩa gì.
Michael Bächtold

1
@ sepp2k tôi không đồng ý. Có một khái niệm về tái phân trong toán học, mặc dù nó thường không được gọi như vậy. Các nhà toán học liên tục giới thiệu các biến nói x, y trong ngữ cảnh của họ (không gán cho chúng một giá trị) và giả sử một cái gì đó về chúng, giả sử y + x = 5. Tiếp theo họ có thể giả sử rằng x = 1 và kết luận y = 4. Họ có thể bỏ giả định x = 1 và giả sử x = 2 thay vào đó và kết luận y = 3. Đối với tôi đó là một sự thay đổi trong x và chúng ta vẫn đang nói về cùng một biến x, vì giả định x + y = 5 giữ trong cả hai bối cảnh.
Michael Bächtold

Câu trả lời:


4

Còn "biểu tượng" thì sao?

Tôi đã xem một video trên F # nơi người nói nói,

bạn không gán giá trị cho biến , bạn liên kết giá trị với ký hiệu .

(Vẫn đang tìm tài liệu tham khảo cho việc này.)

Bất cứ khi nào tôi gặp từ "biến" ở những nơi mà các cấu trúc như vậy là bất biến, tôi âm thầm nghĩ "biểu tượng ràng buộc".


10

Chỉ cần gọi chúng là các biến. Toán có các biến; ngôn ngữ chức năng có cùng loại biến.

Xem thêm bài luận này của Bob Harper về vấn đề thuật ngữ này .


Trong khi điều này nằm dọc theo những gì tôi đang tìm kiếm, liên kết được cung cấp, chỉ khuấy động nhiều cuộc tranh luận hơn là câu trả lời.

@JarrodRoberson, chỉ cần lấy bài luận được liên kết là "tại sao biến là một thuật ngữ phù hợp"; vui lòng bỏ qua phần về "chuyển nhượng".
Ryan Culpepper

1
yeah, các assignables là loại một đỏ cá trích trong cuộc thảo luận đó. Nhưng cá nhân tôi vẫn bị mắc kẹt về mặt ngữ nghĩa đối với các phần khác nhau của biến và thực tế rằng khoa học máy tính không phải là mối tương quan trực tiếp 100% với các thuật ngữ toán học trong nhiều trường hợp.

4

Nó vẫn là một biến nếu nó có thể đảm nhận các giá trị khác nhau trong các yêu cầu khác nhau. Nói cách khác, mặc dù không thể thay đổi một khi được gán, biểu tượng đó có thể được gán cho các giá trị khác nhau ban đầu. Điều đó trái ngược với một hằng số chứa cùng một giá trị mỗi lần nó được gọi.


1

hằng, hoặc const có lẽ sẽ quen thuộc với những người sử dụng các ngôn ngữ như C và C ++,


1

Tên . Điều tương tự có thể được gọi một cách hợp lý bởi nhiều tên ( x = 4; y = 4); và một tên, một khi được xác định, không bao giờ thay đổi tham chiếu của nó. x = 2; x = 3làm cho rất ít ý nghĩa khi nói rằng bạch tuộc không phải là bạch tuộc.


Tôi thích điều này, tôi đã xem xét thuật ngữ labelnhưng namehoạt động tốt và tốt nếu không tốt hơn.

0

Tại sao không chỉ gắn bó với thuật ngữ đó? Nó có thể không phù hợp 100%, nhưng khi bạn chọn một tên khác có thể sẽ gây ra nhiều hiểu lầm hơn những cái bạn cố gắng giải quyết. Các nhà thiết kế của các ngôn ngữ chức năng khác có thể có cùng một vấn đề, nhưng họ đã quyết định sử dụng thuật ngữ "biến".

XSLT (được sử dụng rộng rãi):

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

Haskell:

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

Kế hoạch:

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

Erlang:

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

Tất cả đều đang sử dụng thuật ngữ "biến".

Tất nhiên, các nhà thiết kế ngôn ngữ khác thích nói về "các ràng buộc" hoặc "các giá trị ràng buộc", như ở đây cho F #:

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


0

Tùy thuộc vào bối cảnh "biến" hoặc "ràng buộc" sẽ hoạt động. Tôi nghĩ rằng "ràng buộc" có nhiều khả năng xuất hiện trong các tuyên bố như lettrong Haskell hoặc Lisp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.