Función red se comporta mal en valores .5
O al menos tiene una semántica polémica... Si es equivalente a piso o techo en los valores .5 parece depender de la paridad.
Para reproducir:
Recordemos:
rango(-5,5,0.5) ==> -5:-4.5000:-4:-3.5000:-3:-2.5000:-2:-1.5000:1:-0.5000:0:0.5000:1:1.5000:2:2.5000:3:3.5000:4:4.5000:5:[]
mapred :: R* -> Z* mapred (l) = [] si l == [] o red(primero(l)):mapred(resto(l))
mapred(rango(-5,5,0.5)) ==> -5:-4:-4:-4:-3:-2:-2:-2:-1:0:0:0:1:2:2:2:3:4:4:4:5:[]
Ejemplos en concreto más legibles:
Main>red(4.5) 4 Main>red(5.5) 6 Main>red(-4.5) -4 Main>red(-5.5) -6