2012-03-04 1 views

Répondre

17

deftype et defprotocol définir le comportement dynamique dans Clojure. Dans Racket, nous ferions des choses comme ça avec struct ou struct-property, bien qu'il n'y ait rien de tel que defprotocol dans Racket.

Modifier: La raquette a maintenant , qui sont comme les protocoles Clojure.

reify et extend, je pense, correspondent aux utilisations de make-struct-type en raquette, ce qui crée de nouveaux types de structure de façon dynamique. La grande différence entre la raquette typée, et toutes ces fonctionnalités, est que la raquette tapée vérifie votre programme statiquement - avant d'essayer de l'exécuter. Vous ne pouvez jamais appliquer le mauvais accesseur dans un programme de raquette dactylographiée ou utiliser un nombre en tant que fonction. Vous ne pouvez même pas exécuter un programme qui pourrait avoir une erreur comme ça. À l'heure actuelle, les fonctionnalités de Clojure qui ressemblent le plus à Typed Racket sont les annotations utilisées pour les performances.

Édition: Il ya maintenant Typed Clojure par Ambrose Bonnaire-Sergeant, qui est inspiré et basé sur la raquette dactylographiée.

Questions connexes