¿Cómo funciona Djinn?

Bien, entonces me doy cuenta de que probablemente lamentaré esto por el resto de mi vida, pero ... ¿Cómo funciona realmente Djinn?

La documentación dice que utiliza un algoritmo que es "una extensión de LJ" y apunta a un largo documento confuso sobre LJT. Lo mejor que puedo decir, este es un gran sistema complicado de reglas altamente formalizadas para determinar qué afirmaciones lógicas son verdaderas o falsas. Pero esto ni siquieraempezar para explicar cómo convertir una firma de tipo en una expresión ejecutable. Presumiblemente todo el razonamiento formal complicado esinvolucrado De alguna manera, pero la imagen es crucialmente incompleta.

Es como cuando intenté escribir un intérprete de Pascal en BASIC. (¡No te rías! Tenía solo doce años) Pasé horas tratando de resolverlo, y al final tuve que rendirme. Simplemente no pude averiguar cómo diablos obtienes de una cadena gigante que contiene un programa completo, a algo que puedes comparar con fragmentos de programas conocidos para decidir qué hacer realmente.

La respuesta, por supuesto, es que necesitas escribir una cosa llamada "analizador". Una vez que comprendes qué es esto y qué hace, de repente todo se vuelveobvio. Oh, todavía no es trivial codificarlo, pero elidea es simple. Sólo tienes que escribir el código real. Si hubiera sabido sobre los analizadores cuando tenía doce años, entonces tal vez no hubiera pasado dos horas solo mirando una pantalla en blanco.

Sospecho que lo que hace Djinn es fundamentalmente simple, pero me faltan algunos detalles importantes que explican cómo toda esta complicada gimnasia lógica se relaciona con el código fuente de Haskell ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta