2012-03-04 7 views

risposta

17

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.

Problemi correlati