Яка хороша альтернатива змінній імені для мови, яка має лише незмінні посилання або мітки?


11

Наприклад, у функціональних мовах змінні - це однозначне призначення, і їх значення незмінні, коли вони присвоєні. Таким чином, у них є два незв'язані та зв'язані два стани , один раз пов'язані вони не можуть бути змінені.

Чи є якийсь математичний термін чи інший термін інформатики, який є найбільш підходящим для такої речі, як річ? Щось, що семантично не передбачає дисперсії чи змінності.

Якщо цього не існує, наприклад, термін, і якщо ви розробляли мову, яка мала б такі конструкції, що б ви не використовували для цього змінну слів ?

Я не дуже бажаю опитати ідеї, я намагаюся з’ясувати, чи існує вже прийнятий галузевий (будь-яка галузь) термін для такої речі.


1
Просто називайте їх непорушними ;)
Одід

остаточна змінна?
smp7d

9
Математичний термін для цих видів змінних був би "змінним". Поняття змінної змінної насправді не існувало, поки мови програмування не увійшли до зображення.
sepp2k

1
Я не згоден з @ sepp2k. Термін "змінна" був введений Лейбніцом при його розробці диференціального числення, і з того часу він був частиною математики та фізики. Ці змінні кількості обов'язково потребують можливості зміни. Інакше ідея $ \ Delta x $ або $ dx $ не має сенсу.
Michael Bächtold

1
@ sepp2k Я не згоден. Там є концепція повторного призначення в математиці, хоча він традиційно не називається саме так. Математики постійно вводять змінні скажіть x, y у їх контекст (не привласнюючи їм значення) і припускаючи щось про них, скажімо, y + x = 5. Далі вони можуть припустити, що x = 1, а висновок y = 4. Вони можуть скинути припущення x = 1 і припустити x = 2 і зробити висновок y = 3. Для мене це зміна x, і ми все ще говоримо про одну і ту ж змінну x, оскільки припущення x + y = 5 має місце в обох контекстах.
Michael Bächtold

Відповіді:


4

А як щодо "символу"?

Я побачив відео на F #, де доповідач сказав:

ви не присвоюєте значення змінній , ви прив'язуєте значення до символу .

(Досі шукаю посилання на це.)

Кожного разу, коли я стикаюся зі словом "змінною" в місцях, де такі конструкції незмінні, я мовчки думаю "пов'язаний символ".


10

Просто називайте їх змінними. У математиці є змінні; функціональні мови мають однаковий вид змінних.

Дивіться також цей нарис Боба Харпера з цього питання щодо термінології .


Хоча це відповідає принципам того, що я шукав, надане посилання просто викликає більше дискусій, ніж відповідей.

@JarrodRoberson, просто візьміть пов'язаний есе як "чому змінна є відповідним терміном"; сміливо ігноруйте частину про "присвоєння".
Райан Калпеппер

1
так, присвоєння є різновидом оселедця в цій дискусії. Але особисто я все ще семантично застряг у різній частині змінних, і той факт, що інформатика не є 100% прямою кореляцією з математичними термінами у багатьох випадках.

4

Це ще змінна, якщо вона може приймати різні значення в різних викликах. Іншими словами, незважаючи на те, що його неможливо змінити після призначення, цей символ спочатку може бути присвоєний різним значенням. Це на відміну від константи, яка містить одне і те ж значення кожного разу, коли воно викликається.



1

Ім'я . Те саме може бути розумно викликано кількома іменами ( x = 4; y = 4); а ім’я, визначене колись, ніколи не змінює свого референта. x = 2; x = 3не має сенсу говорити, що восьминога не є восьминога.


Мені це подобається, я розглядав термін, labelале nameпрацює справедливо і добре, якщо не краще.

0

Чому б просто не дотримуватися цього терміна? Це може бути не на 100% доречним, але коли ви виберете інше ім'я, що, ймовірно, стане причиною більше непорозумінь, ніж ті, які ви намагаєтеся вирішити. Дизайнери інших функціональних мов можуть мати ту саму проблему, але вони вирішили використовувати також термін "змінна".

XSLT (який широко використовується):

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

Haskell:

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

Схема:

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

Erlang:

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

Усі вони також використовують термін "змінна".

Звичайно, інші мовні дизайнери вважають за краще говорити про "прив'язки" або "пов'язані значення", як тут для F #:

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


0

Залежно від контексту "змінна" чи "прив'язка" буде працювати. Я думаю, що "прив'язка" швидше за все з'явиться у заявах, як letу Haskell чи Lisp.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.