Giter Site home page Giter Site logo

mumuki-prolog-runner's Introduction

Build Status Code Climate Test Coverage

Run the server

RACK_ENV=development bundle exec rackup -p 4567

mumuki-prolog-runner's People

Contributors

flbulgarelli avatar gcrespi avatar faloi avatar mmatos avatar palumbon avatar julian-berbel avatar aguspina avatar afska avatar

Stargazers

Manuel Gambino avatar  avatar  avatar

Watchers

 avatar James Cloos avatar Federico Scarpa avatar Ernesto Bossi avatar  avatar Gustavo Trucco avatar Javier Casaubón avatar  avatar  avatar Javier Fernandes avatar  avatar Iván Luetich avatar  avatar Luis Cannavó avatar MumukiBot avatar

Forkers

aguspina

mumuki-prolog-runner's Issues

Detectar el smell del is

Ejemplo:
maximo(Numero, Otro, Maximo):-Numero>= Otro, Maximo is Numero.
maximo(Numero, Otro, Maximo):- Numero < Otro, Maximo is Otro.

Para mi el is en estos casos es algo que quiero evitar.

Rack::Utils::InvalidParameterError: invalid %-encoding

Prolog code usually contains '%'. But it is being interpreted as a %-encoding:

2015-03-25T03:54:29.890957+00:00 app[web.1]: [2015-03-25 03:54:29] ERROR Rack::Utils::InvalidParameterError: invalid %-encoding ({"test":"puedeAndar(comercioExterior,Persona):- habla(ingles,Persona),\nhabla(frances,Persona),\nprofesional(Persona).\n\npuedeAndar(comercioExterior,Persona):- ambicioso(Persona).\npuedeAndar(contaduria,Persona):- contador(Persona),\nhonesto(Persona).\n\npuedeAndar(ventas,Persona):- ambicioso(Persona),\nconExperiencia(Persona).\n\npuedeAndar(ventas,lucia).\n\nprofesional(Persona):- contador(Persona).\nprofesional(Persona):- abogado(Persona).\nprofesional(Persona):- ingeniero(Persona).\n\nambicioso(Persona):- contador(Persona), joven(Persona).\n\nconExperiencia(Persona):- trabajoEn(Persona,_).\n\n%Roque\ncontador(roque).\njoven(roque).\ntrabajoEn(roque,acme).\nhabla(roque,frances).\nhonesto(roque).\n\n%Ana\ningeniero(ana).\nhabla(ana,ingles).\nhabla(ana,frances).\ntrabajoEn(ana,omni).\n\n%Lucia\nhabla(lucia,ingles).\nhabla(lucia,frances).\ntrabajoEn(lucia,omni).\n\n%Cecilia\nabogado(cecilia).\nambicioso(cecilia).\nhabla(cecilia,frances).\n\n%Magolla\nabogado(magolla).\njoven(magolla).\n\n%Tests\ntest(test_puedeAndar_proyectos_ana):-\npuedeAndar(proyectos,ana).\n\ntest(test_puedeAndar_proyectos_magolla):-\npuedeAndar(proyectos,magolla).\n\ntest(test_no_puedeAndar_proyectos_roque):-\nnot(puedeAndar(proyectos,roque)).\n\ntest(test_no_puedeAndar_proyectos_lucia):-\nnot(puedeAndar(proyectos,lucia)).\n\ntest(test_puedeAndar_logistica_ana):-\npuedeAndar(logistica,ana).\n\ntest(test_puedeAndar_logistica_roque):-\npuedeAndar(logistica,roque).\n\ntest(test_no_puedeAndar_logistica_lucia):-\nnot(puedeAndar(logistica,lucia)).\n\ntest(test_no_puedeAndar_logistica_cecilia):-\nnot(puedeAndar(logistica,cecilia)).\n\ntest(test_fulgencio_proyectosSi_logisticaNo):-\npuedeAndar(proyectos,fulgencio),\nnot(puedeAndar(logistica,fulgencio)).\n\ntest(test_clotilde_ventasSi_contaduriaNo):-\npuedeAndar(ventas,clotilde),\nnot(puedeAndar(contaduria,clotilde)).\n\n\ntest(puede_andar_forma_mixta):-\n\taparecePredicado(puedeAndar, mixto).\n\ntest(profesional_forma_extensión):-\n\taparecePredicado(profesional, extensión).\t\n\ntest(ambicioso_forma_comprensión):-\n\taparecePredicado(ambicioso, comprensión).\n\ntest(conExperiencia_forma_comprensión):-\n\taparecePredicado(conExperiencia, comprensión).\t\t\n\ntest(roque_puede_andar_en_comercio_exterior):-\n\tcomercioExterior(roque, si).\n\ntest(roque_puede_andar_en_contaduria):-\n\tcontaduria(roque, si).\n\ntest(roque_puede_andar_en_ventas):-\n\tventas(roque, si).\n\ntest(lucia_no_puede_andar_en_comercio_exterior):-\n\tcomercioExterior(lucia, no).\n\ntest(lucia_puede_andar_en_ventas):-\n\tventas(lucia, si).\n\ntest(ana_puede_andar_en_comercio_exterior):-\n\tcomercioExterior(ana, si).\n","extra":"","content":""})

Remove choicepoints warnings from output

Remove warnings like the following from output:

Warning: /tmp/mumuki.compile20150327-3-loryr0:22:
    PL-Unit: Test maria_trabaja_con_roque: Test succeeded with choicepoint

Resolucion erronea del Ejercicio 7 Leccion 10

Diferentes soluciones que no son correctas pasan la prueba:

por ejemplo:

costosDeHerramientas(Costos) :-
  findall(Costo, costoHerramienta(Herramienta, Costo), Costos).
  
costoTotalDeHerramientasDemandadas(Sumatoria) :-
  costosDeHerramientas(Costos).
  sumlist(Costos, Sumatoria). 

costoDeHerramienta(Costos):-
    findall(Herramienta, herramientaDemandada(Herramienta), Herramientas),
    findall(Costo, costoHerramienta(Herramientas,Costo), Costos).

  
costoTotalDeHerramientasDemandadas(Sumatoria) :-
  costosDeHerramientas(Costos).
  sumlist(Costos, Sumatoria). 

costoDeHerramienta(Costos):-
    herramientaDemandada(Herramientas).
    findall(Costo, costoHerramienta(Herramientas,Costo), Costos).

  
costoTotalDeHerramientasDemandadas(Sumatoria) :-
  costosDeHerramientas(Costos).
  sumlist(Costos, Sumatoria). 

costoDeHerramienta(Costos):-
    herramientaDemandada(Herramientas).
    findall(Herramientas, costoHerramienta(Herramientas,_), Costos).
  
costoTotalDeHerramientasDemandadas(Sumatoria) :-
  costosDeHerramientas(Costos).
  sumlist(Costos, Sumatoria). 

Error on evaluating expressions on console

Example:

ム X = 4. 
ERROR: writeBinding/1: Undefined procedure: compound_name_arguments/3
Exception: (8) compound_name_arguments('X'=4, =, [_G1004, _G1007]) ? EOF: exit

This happens always, regardless of the final dot presence.

Ignore Warning: Clauses are not together in the source-file

Can we ignore the Warning: Clauses are not together in the source-file for Prolog solutions?

I have cases where the students must add new clauses for a given predicate or in particulars exercises adding examples in extra code. This warning appears until the exercise is done and it's very annoying and confused.

Orden Superior: Mejorar el mensaje de error cuando se consulta un predicado inexistente

Dada esta solución parcial de un ejercicio:

tiempoTotalVuelo(Vuelo, TiempoTotal):-
  vuelo(Vuelo, _, Destinos),
  findall(Tiempo, (member(Destino, Destinos), duracion(Destino, Tiempo)), Tiempos),
  sumlist(Tiempos, TiempoTotal).

donde no se define el predicado duracion/2 que se usa dentro del findall, si se envía la solución Mumuki muestra:

Revisá el predicado ''/1. Parece que intentaste usar duracion/2, pero no existe. ¿Habrás escrito mal su nombre o pasado una cantidad incorrecta de argumentos?

Better syntax error message

When a solution use <= or => would be nice show a message remembering that the operators are =< and >=. Like the \= case!

Los comentarios impactan al runner

Tanto si se usa % como /* */ para agregar comentarios en la solución pasan cosas raras, sobre todo con las inspecciones.

Puntualmente me pasó en el ejercicio 10. viajes de la guía: Práctica Listas y Findall.

imagen

imagen

Si el comentario lo pongo arriba de tiempoTotalVuelo en vez de en el medio, muestra esto:
imagen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.