deftype
e defprotocol
definiscono il comportamento dinamico in Clojure. In Racket, faremmo cose del genere con struct
o struct-property
, anche se non c'è nulla di simile a defprotocol
in Racket.
Modifica: La racchetta ora ha generics, che sono come i protocolli Clojure.
reify
e extend
, penso, corrispondono agli usi di make-struct-type
in Racket, che crea dinamicamente nuovi tipi di struttura.
La grande differenza tra Typed Racket e tutte queste funzionalità è che Typed Racket controlla il programma staticamente - prima di provare a eseguirlo. Non è mai possibile applicare la funzione di accesso errata in un programma Typed Racket o utilizzare un numero come funzione. Non puoi nemmeno eseguire un programma che potrebbe avere un errore del genere.
Attualmente, le funzionalità di Clojure più simili a Racchetta mobile sono le annotazioni che utilizza per le prestazioni.
Modifica: Ora c'è Typed Clojure di Ambrose Bonnaire-Sergeant, che è ispirato e basato su Typed Racket.
fonte
2012-03-04 23:04:22