Clojure a quelques caractéristiques intéressantes pour représenter les types, y compris mais non limité à deftype
, defprotocol
, reify
et extend
. Quelles sont les similitudes et les différences entre les caractéristiques de typage dans Typed Racket et les caractéristiques de type type dans Clojure?Quelles sont les similitudes et les différences entre les fonctions de frappe dans Typed Racket et les fonctionnalités de type Clojure?
Répondre
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.
- 1. Quelles sont les différences/similitudes entre JBI et SCA
- 2. Quelles sont les similitudes et les différences entre le mapreduce de MongoDB et Hadoop?
- 3. Quelles sont les différences entre Clojure, Scheme/Racket et Common Lisp?
- 4. Quelles sont les similitudes et les différences entre SAP BusinessObjects et XS Engine?
- 5. Quelles sont les différences et les similitudes entre une classe d'interface et une classe abstraite?
- 6. Quelles sont les différences entre les délégués et les événements?
- 7. Quelles sont les différences entre les plug-ins, les fonctionnalités et les produits dans Eclipse RCP?
- 8. Quelles sont les similitudes ou les différences entre Dynamics CRM et Dynamics GP (Great Plains)
- 9. Quelles sont les différences fondamentales entre les fonctions et l'architecture entre le BEAM et la JVM?
- 10. Quelles sont les différences entre gdata.docs.service.DocsService et gdata.docs.client.DocsClient?
- 11. Quelles sont les différences et les similitudes possibles des fermetures et des curry?
- 12. Quelles sont les différences entre les services distribués et décentralisés?
- 13. Quelles sont les différences entre les nœuds NServiceBus.Distributor et Master
- 14. Quelles sont les différences entre les imbriqués if et &&?
- 15. Quelles sont les différences entre & et &&, | et || dans R?
- 16. Quelles sont les fonctionnalités de Clojure core preserve meta?
- 17. quelles sont les différences clés entre mvc1 et mvc2
- 18. Quelles sont les différences de rendu entre FF2 et FF3?
- 19. Quelles sont les différences entre les fonctions Cast et Convert dans SQL Server avec T-SQL?
- 20. Quelles sont les différences entre NSURLConnection et ASI-HTTP-Request?
- 21. Quelles sont les différences entre JVisualVM et Java Mission Control?
- 22. Quelles sont les différences entre HoughCircles dans EmguCV et OpenCV?
- 23. Quelles sont les différences entre GlyphRange et CharacterRange dans NSTextView?
- 24. Quelles sont les différences entre RedrawWindow et UpdateWindow dans Win32?
- 25. Quelles sont les différences entre le système et les backticks et les tuyaux dans Perl?
- 26. Quelles sont les différences entre les versions de Json.Net?
- 27. Différences entre les versions de clojure
- 28. Quelles sont les différences entre les bogues, les problèmes et les tâches dans TFS
- 29. Quelles sont les différences entre YUI2.7 et YUI2.8?
- 30. Quelles sont les différences entre [Serializable] et [Serializable()]