Buenas, tengo varias dudas sobre esta función, que son las siguientes:
1)e:[] ++ es
se sugiere eliminar la concatenación y hacer directamente e:es.
e necesariamente es un identificador( de tipo Var) o puede ser un Literal (Por ejemplo un entero o un booleano)?
Doy por entendido que 'es' puede ser solo un identificador ya que representa una lista de x elemento.
2) x:[] ++ (y:[] ++ ys)
En este caso se sugiere que quede de la siguiente manera x : (y : ys), mi duda es en caso de tener x: [] ++ (exp)
siendo exp cualquier expresión, tendría que quedar x:exp? por ejemplo el caso x:[] ++ (y ++ ys) quedaría x:(y ++ ys) se me hace coherente, pero con otro tipo de expresiones no.
3) En el caso x:[] ++ (y:[] ++ (ys:[] ++ ps)) que debería quedar?
Hola, van las respuestas:
1) e y es son expresiones, se supone que e evalúa a un valor y es a una lista, pero eso no te debe importar al momento de implementar el linting.
2) como dije en 1), es es una expresión cualquiera, el prohibir las expresiones incoherentes es tarea del type-checker
3) te queda: x : (y : (ys : ps))
y las sugerencias son las siguientes:
**Sugerencia para:
ys : [] ++ ps
Eliminar concatenación. Reemplazar por:
ys : ps
**Sugerencia para:
y : [] ++ (ys : ps)
Eliminar concatenación. Reemplazar por:
y : (ys : ps)
**Sugerencia para:
x : [] ++ (y : (ys : ps))
Eliminar concatenación. Reemplazar por:
x : (y : (ys : ps))
saludos
1) e y es son expresiones, se supone que e evalúa a un valor y es a una lista, pero eso no te debe importar al momento de implementar el linting.
2) como dije en 1), es es una expresión cualquiera, el prohibir las expresiones incoherentes es tarea del type-checker
3) te queda: x : (y : (ys : ps))
y las sugerencias son las siguientes:
**Sugerencia para:
ys : [] ++ ps
Eliminar concatenación. Reemplazar por:
ys : ps
**Sugerencia para:
y : [] ++ (ys : ps)
Eliminar concatenación. Reemplazar por:
y : (ys : ps)
**Sugerencia para:
x : [] ++ (y : (ys : ps))
Eliminar concatenación. Reemplazar por:
x : (y : (ys : ps))
saludos