[nem-pl] Operator przypisania
Marcin 'Qrczak' Kowalczyk
qrczak at knm.org.pl
Mon May 17 17:35:50 CEST 2004
W liście z pon, 17-05-2004, godz. 16:56 +0200, Kamil Skalski napisał:
> 1. przyzwyczajenia mas programistów i powszechność '='
> 2. łatwość wklepywania '='
> 3. docelowy programista nigdy nie spyta o co chodzi w '=' bo już się z tym
> gdzieś zetknął
>
> Decyzja co prawda jeszcze nie zapadła, ale tak to już bywa, że czasami trzeba
> zrezygnować z czegoś eleganckiego (SML, Haskell ? ;) na rzecz czegoś
> użytecznego.
Jako głosujący za '=' podam swoje argumenty.
Mamy trzy konstrukcje składniowe:
1. Nazwanie wyniku wyrażenia niezmienialną nazwą zmiennej (inny punkt
widzenia: utworzenie niezmienialnej zmiennej o dan\ej wartości).
2. Utworzenie zmienialnej zmiennej z daną wartością początkową.
3. Zmiana wartości zmienialnej zmiennej.
Fakt: 1 jest podobne do 2 (różnią się tylko tym, czy zmienna
może się później zmienić), a 2 jest podobne do 3 (2 to utworzenie
niezaincjalizowanej zmiennej i wykonanie 3).
Dla 1 praktycznie wszystkie języki, które w ogóle mają taką konstrukcję
i jakiś znaczek w niej, zgadzają się na '='. Tutaj nie ma wątpliwości.
Jeśli dla 3 przyjmiemy ':=' albo '<-', to dla 2 mamy kłopot: z czymś
zawsze będzie niespójne. Przyjęcie '=' dla 2 powoduje ciągłe pomyłki
i próby stosowania '=' dla 3; to ma w ogóle rację bytu tylko jeśli
składnia 'v = x' jest błędem.
W swoim języku przez pewien czas miałem ':=' dla 2 i 3. Też mi się to
nie podobało z powodu niezgodności 1 z 2. Poza zwykłymi i zmienialnymi
zmiennymi mam leniwe zmienne i one oczywiście używały '=', więc tylko
zmienialne zmienne odstawały.
Zmieniłem więc 2 i 3 na '=' i teraz wszystko pasuje.
Definicyjne '=' tak czy siak jest niesymetryczne, więc asymetria
przypisania jest słabym argumentem przeciw.
Po drugie jeśli wziąć pod uwagę powszechność w innych językach:
http://merd.sourceforge.net/pixel/language-study/syntax-across-languages/Vrs.html#VrsVrbssgOrDcl
to '=' jest popularniejsze od ':=', a '<-' jest wyłącznie w OCamlu.
Na ilość tych z '=' jest niewiele więcej od tych z ':=', ale są tu
znacznie popularniejsze języki.
--
__("< Marcin Kowalczyk
\__/ qrczak at knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
More information about the devel-pl
mailing list