Était-ce utile?

La solution

Le problème est que le compilateur ne suit pas le type de vars def'd. Alors oui, dans votre exemple simple, il serait possible. Mais à quelle fréquence vous passez un littéral? Rarement, dans un véritable programme.

Faire des types « écoulement à travers » comme ils le font dans une langue réelle typé statiquement nécessiterait une grande quantité de remaniement. Il faudrait suivre les informations de type par vars, rebond dynamique vars, déréférencement, etc. Et puis vous toujours ont la question de tirer des articles de collections / séquences, ce qui implique des types genericized, ce qui est énorme de vers ... peut

Type annotations dans Clojure ont jamais été destinées à fournir de type sécurité au moment de la compilation - (. Au détriment d'une erreur d'exécution de temps si un type inattendu est rencontré) ils ne permettent au compilateur de générer un code plus optimisé

le compilateur avec instrumentation d'informations de typage statique complète pourrait être possible, mais à ce moment-là que vous avez largement réécrit la langue, et vous aurez dû prendre de nombreuses décisions et des compromis dans la façon dont les types sont traités. Il ne serait vraiment pas Clojure plus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top