Opened 15 years ago
Closed 15 years ago
#1113 closed doubt (fixed)
Argument deleteOld in Remove and Replace
| Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
|---|---|---|---|
| Priority: | normal | Milestone: | Mantainance |
| Component: | Kernel | Version: | head |
| Severity: | normal | Keywords: | |
| Cc: |
Description
¿Qué sentido tiene el argumento deleteOld en las funciones Remove y Replace para conjuntos? ¿En que caso debería usarse como cierto o falso?
Por unos errores que he encontrado en mi código creo que no he interpretado bien su significado.
En la descripción de las funciones se indica: "se intenta borrar de la memoria". ¿no debería siempre intentarse borrar el objeto si nadie lo referencia?
¿Qué opción de deleteOld actúa de manera parecida a este método?
Set RemoveByIndex(Set set, Real index) {
Real size = Card(set);
Real If(And(1<=index<=size, IsInteger(index)), {
Real hasIndex = HasIndexByName(set);
Set set := ExtractByIndex(set, Range(1, index-1, 1)
<< Range(index+1, size, 1));
Real If(Card(set) & hasIndex, SetIndexByName(set), 0)
});
set
};
¿Podría dejarse este último argumento como opcional y establecer el valor deleteOld=True por defecto?

(In [3265]) Fixes #1113