Wiele typowych operacji na kolekcjach w Julii, takich jak usuwanie elementu z zestawu, zostało ostatnio zmienionych, a stare funkcje są przestarzałe.Dlaczego te typowe operacje na kolekcjach zostały zmienione w Julia?
Na przykład
del(IntSet(1,2,3), 1)
teraz wyskakuje ostrzeżenie
WARNING: del is deprecated, use delete! instead.
Niektóre przemianowany funkcji:
@deprecate push push!
@deprecate pop pop!
@deprecate grow grow!
@deprecate enqueue unshift!
@deprecate unshift unshift!
@deprecate shift shift!
@deprecate insert insert!
@deprecate del delete!
@deprecate del_all empty!
Dlaczego zostały one przemianowane? Dołącza! do funkcji, które zmieniają stan kolekcji teraz konwencji?
Nie mam doświadczenia z Julią (wcześniej o niej nie słyszałem), ale widziałem przyrostek "!" W innych językach. Z perspektywy programowania funkcjonalnego '!' Wskazuje funkcję, której głównym celem jest mutacyjny efekt uboczny. W skrócie Julia wygląda na zbudowanego z myślą o przetwarzaniu parellel, a zmienność zwiększa złożoność w współbieżności: więc '!' Wzmocniłoby to, że to szczególne wezwanie wymagałoby dodatkowej opieki w tym zakresie (a alternatywna funkcja może być lepszą alternatywą) . –