deftype
y defprotocol
definen el comportamiento dinámico en Clojure. En Racket, haríamos cosas como esa con struct
o struct-property
, aunque no hay nada como defprotocol
en Racket.
Editar: Raqueta ahora tiene generics, que son como los protocolos de Clojure.
reify
y extend
, creo que corresponden a los usos de make-struct-type
en Racket, que crea nuevos tipos de estructura de forma dinámica.
La gran diferencia entre Typed Racket y todas estas características es que Typed Racket comprueba su programa estáticamente - antes de intentar ejecutarlo. Nunca puede aplicar el acceso incorrecto en un programa de Raqueta mecanografiada, o usar un número como función. Ni siquiera puedes ejecutar un programa que pueda tener un error como ese.
En la actualidad, las características de Clojure que más se parecen a la raqueta modificada son las anotaciones que utiliza para el rendimiento.
Edit: Ahora está Typed Clojure de Ambrose Bonnaire-Sergeant, que está inspirado y basado en Typed Racket.