miércoles, 15 de agosto de 2007

Varias cosas nuevas

Entre ayer y hoy implementé varias cosas interesantes:
  • Los dos patrones de iteración que tengo por ahora son map y find. Ambos ahora aceptan cotas opciones sobre el ranto de operación. Por ejemplo:
    • map e in a[..k..10] { ... }
    • find first x in a[j..k..i+1] { ... }
  • Ahora find también soporta búsqueda desde atrás.
    • find first ...
    • find last ...
  • Se pueden crear arreglos en cualquier punto, así como antes se podían crear variables.
    • local b[|a| - 10] <- .. a[0] ..
      • inicializa un arreglo de tamaño |a|-10 con todos elementos iguales a a[0]
  • Diseñé una clase genérica ProverOrchestrator que permite implementar distintas estrategias para combinar provers. Por ahora hay dos estrategias:
    • Simple: usar un prover en particular, si anda anda, si no no.
    • Lista: usar una serie de provers en un orden prefijado. Mientras la respuesta sea unknown se va pasando al siguiente.
Con esta segunda estrategia pude demostrar que bubbleSort es correcto y preserva los elementos en el caso de arreglos sin repetidos.

No hay comentarios.: