Well I'm sure people wouldn't be happy if their call to (+ a b c) was suddenly turned into (clojure.lang.Numbers/add (clojure.lang.Numbers/add a b) c)
:) On Thu, Aug 29, 2013 at 10:57 PM, Daniel <doubleagen...@gmail.com> wrote: > Those forms won't be in the namespace you're evaluating? > > Yeah, it's probably a lot of work, but it sounds neat. :-) > > > > On Thursday, August 29, 2013 9:07:26 AM UTC-5, Ambrose Bonnaire-Sergeant > wrote: > >> I don't think it would be possible to reconstruct the original forms in >> general, you would need to reverse macroexpansion to provide a form that >> has at least a passing familiarity with the original form. Otherwise you >> would get fully macroexpanded forms. >> >> That's a lot of work! >> >> >> On Thu, Aug 29, 2013 at 9:56 PM, Daniel <double...@gmail.com> wrote: >> >>> If you can do that, why not return the literal representation of the >>> type hinted function? >>> >>> For the repl you could provide a function that interns the type-hinted >>> function into the namespace by evaluating the literal representation first. >>> >>> From there it's easy to provide something like slamhound. Once you're >>> certain types have been provided to your namespace correctly at the repl, >>> run 'lein type <namespace>' to type hint everything in the namespace by >>> literally restructuring the file. >>> >>> Things type hinted with expressions would be tricky, but this could work >>> (or you could just leave it alone): >>> >>> myfn (original) >>> myfn-int >>> myfn-long >>> myfn-float >>> etc.... >>> >>> >>> >>> On Thursday, August 29, 2013 6:40:16 AM UTC-5, Ambrose Bonnaire-Sergeant >>> wrote: >>> >>>> With Clojure the lines blur between compile time and runtime. >>>> >>>> The clearest way to put it is that type checking is explicitly called >>>> at the REPL or in a unit test. Usually this is done during development >>>> iterations or testing time. >>>> >>>> Re: performance improvements: Michael is correct. Interestingly Typed >>>> Racket offers numeric optimisations, but leans heavily on Racket's >>>> metaprogramming facilities to insert them automatically. There's potential >>>> in Typed Clojure for *identification* of speed improvements, but not >>>> actually inserting them. Typed Racket's "optimisation coach" comes to mind >>>> in ways we can present this information ("put a type hint at line 10, col >>>> 20 to get full speed..."). >>>> >>>> Thanks, >>>> Ambrose >>>> >>>> >>>> On Thu, Aug 29, 2013 at 6:03 PM, Christian Sperandio < >>>> christian...@gmail.com**> wrote: >>>> >>>>> Ok... >>>>> >>>>> Another question, the checking is done only once (while compiling) ? >>>>> Or, it's done while the runtime? >>>>> >>>>> >>>>> >>>>> 2013/8/29 Michael Klishin <michael....@gmail.com> >>>>> >>>>>> 2013/8/29 Christian Sperandio <christian...@gmail.com**> >>>>>> >>>>>> Is there any perf improvement to use static typing in Clojure? >>>>>> >>>>>> >>>>>> core.typed is not a compiler, it's a type annotation/checker >>>>>> implemented >>>>>> as a library. >>>>>> >>>>>> If you are familiar with Erlang, it is to Clojure what Dialyzer is to >>>>>> Erlang. >>>>>> -- >>>>>> MK >>>>>> >>>>>> http://github.com/**michaelklish**in<http://github.com/michaelklishin> >>>>>> http://twitter.com/**michaelklis**hin<http://twitter.com/michaelklishin> >>>>>> >>>>>> -- >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Clojure" group. >>>>>> To post to this group, send email to clo...@googlegroups.com >>>>>> >>>>>> Note that posts from new members are moderated - please be patient >>>>>> with your first post. >>>>>> To unsubscribe from this group, send email to >>>>>> clojure+u...@**googlegroups.com >>>>>> >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/**group**/clojure?hl=en<http://groups.google.com/group/clojure?hl=en> >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Clojure" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to clojure+u...@**googlegroups.com. >>>>>> >>>>>> For more options, visit >>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>>> . >>>>>> >>>>> >>>>> -- >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To post to this group, send email to clo...@googlegroups.com >>>>> >>>>> Note that posts from new members are moderated - please be patient >>>>> with your first post. >>>>> To unsubscribe from this group, send email to >>>>> clojure+u...@**googlegroups.com >>>>> >>>>> For more options, visit this group at >>>>> http://groups.google.com/**group**/clojure?hl=en<http://groups.google.com/group/clojure?hl=en> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to clojure+u...@**googlegroups.com. >>>>> >>>>> For more options, visit >>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>> >>>> -- >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@googlegroups.com >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+u...@**googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/**group/clojure?hl=en<http://groups.google.com/group/clojure?hl=en> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+u...@**googlegroups.com. >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >> >> -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.