¿Es posible hacer tipos dependientes en Typed Racket?

9

¿Es posible usar tipos dependientes en la implementación existente de Typed Racket ? (es decir, ¿existen en él?)

¿Es razonablemente posible implementar un sistema de tipos dependientes usando Typed Racket?

ojo de halcón
fuente
3
Creo que necesita aclarar un poco esta pregunta: ¿se pregunta si existen tipos dependientes en Racket o si es posible agregarlos ? Si es el primero, entonces no (según las definiciones más razonables de tipos dependientes), y si es el último, entonces sí.
cody
1
Como señala Cody, esta pregunta no está clara, y dependiendo de lo que quisiste decir, la respuesta es un no no muy interesante o un sí no muy interesante. Haga esta pregunta para que sepamos lo que realmente está preguntando.
Gilles 'SO- deja de ser malvado'

Respuestas:

-1

Creo que "hacer tipos dependientes" usando contratos ya es posible. Compruebe https://docs.racket-lang.org/guide/contracts-struct.html y busque "Comprobación de propiedades de estructuras de datos".

Se podría argumentar que esto es más bien simular el efecto que tenerlo como parte del lenguaje. Sin embargo, en algún lugar necesitará escribir el código, que le dice al intérprete / compilador cuáles son esas dependencias y en Racket puede hacerlo con contratos.

Zelphir Kaltstahl
fuente
Estoy contento con la idea de que las macros en raqueta están 'extendiendo el compilador'
hawkeye
@hawkeye ¿Podría dar una respuesta a esta pregunta implementando tipos dependientes con macros? (No dudo que sea posible.)
Zelphir Kaltstahl
El argumento sobre si las macros extienden el compilador están aquí: stackoverflow.com/a/268091/15441 y puede colocar cualquier fragmento de código en una macro, por lo que el código que se usa para los tipos dependientes se puede colocar en una macro. Ese era el punto que estaba haciendo.
hawkeye