Molte operazioni comuni sulle raccolte in Julia, come l'eliminazione di un elemento da un Set, sono state ridenominate di recente, con le vecchie funzioni deprecate.Perché queste operazioni comuni sulle raccolte sono state ridenominate in Julia?
Per esempio,
del(IntSet(1,2,3), 1)
ora si solleva un avvertimento
WARNING: del is deprecated, use delete! instead.
Alcune delle funzioni rinominati:
@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!
Perché sono stati rinominati questi? Aggiungere un! alle funzioni che cambiano lo stato di una raccolta ora una convenzione?
Non ho esperienza con Julia (non ne avevo mai sentito parlare prima) ma ho visto il suffisso '!' In altre lingue. Da una prospettiva di programmazione funzionale, '!' Indica una funzione in cui lo scopo principale è un effetto collaterale mutante. A prima vista Julia sembra essere degnata con l'elaborazione di parellel in mente e la mutabilità aumenta la complessità in concorrenza: così il '!' Rafforzerebbe il fatto che quella chiamata particolare avrebbe bisogno di ulteriore attenzione a tale riguardo (e una funzione alternativa potrebbe essere un'alternativa migliore) . –