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.

Reply via email to