Na przykład w językach funkcjonalnych zmienne są pojedynczymi przypisaniami, a ich wartości są niezmienne po przypisaniu. Więc mają dwa stany niezwiązane i powiązane , raz powiązanego nie można zmienić.
Czy istnieje jakiś termin matematyczny lub inny termin informatyczny, który jest najbardziej odpowiedni dla takich rzeczy? Coś, co semantycznie nie implikuje wariancji lub zmienności.
Jeśli nie, nie istnieje taki termin, jak i jeśli projektujesz język, który ma takie konstrukcje, to co innego niż zmienna słów użyłbyś do nich?
Ja nie bardzo patrząc na sondzie pomysłów, próbuję dowiedzieć się, czy istnieje już przemysł Zaakceptowany (dowolny przemysł) określenie takiej rzeczy.
Odpowiedzi:
Co z „symbolem”?
Widziałem wideo na F #, w którym mówca powiedział:
(Wciąż szukam odniesienia do tego.)
Ilekroć spotykam słowo „zmienna” w miejscach, w których takie konstrukty są niezmienne, cicho myślę „związany symbol”.
źródło
Po prostu nazywaj je zmiennymi. Matematyka ma zmienne; języki funkcjonalne mają ten sam rodzaj zmiennych.
Zobacz także ten esej Boba Harpera na ten temat terminologiczny .
źródło
Nadal jest zmienną, jeśli może przyjmować różne wartości w różnych wywołaniach. Innymi słowy, nawet jeśli nie można go zmienić po przypisaniu, symbol ten można początkowo przypisać do różnych wartości. Jest to w przeciwieństwie do stałej, która zawiera tę samą wartość przy każdym wywołaniu.
źródło
stała lub const prawdopodobnie byłyby znane osobom używającym języków takich jak C i C ++,
źródło
Nazwa . To samo można rozsądnie nazwać wieloma nazwami (
x = 4; y = 4
); a raz zdefiniowana nazwa nigdy nie zmienia swojego odniesienia.x = 2; x = 3
nie ma sensu mówić, że ośmiornica nie jest ośmiornicą.źródło
label
alename
działa dobrze i dobrze, jeśli nie lepiej.Dlaczego nie trzymać się tego terminu? Może nie być w 100% odpowiednie, ale kiedy wybierzesz inną nazwę, która prawdopodobnie będzie przyczyną większej liczby nieporozumień niż te, które próbujesz rozwiązać. Projektanci innych języków funkcjonalnych mogą mieć ten sam problem, ale postanowili również użyć terminu „zmienna”.
XSLT (który jest szeroko stosowany):
http://www.w3schools.com/xsl/el_variable.asp
Haskell:
http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-240003.2
Schemat:
http://www.scheme.com/tspl2d/binding.html
Erlang:
http://www.erlang.org/doc/reference_manual/expressions.html
Wszyscy używają również terminu „zmienna”.
Oczywiście inni projektanci języków wolą mówić o „powiązaniach” lub „wartościach powiązanych”, tak jak tutaj dla F #:
http://msdn.microsoft.com/en-us/library/dd233238.aspx
źródło
W zależności od kontekstu zadziała „zmienna” lub „wiązanie”. Myślę, że „wiążące” częściej pojawia się w wypowiedziach takich jak
let
w Haskell czy Lisp.źródło