On Thu, Jun 27, 2013 at 3:04 AM, Gary Trakhman <gary.trakh...@gmail.com>wrote:

> The first thing I think of along these lines is codeq
> http://blog.datomic.com/2012/10/codeq.html
>

 Codeq seems very good for querying and manipulating the history of the
project, but i was thinking along the lines of
executing the whole history of the project. Being able to execute the whole
history is not always meaningful, there
is always a kind of global state, but for deterministic functions that
operate only on their arguments, that shouldn't
be impossible to do.



> When I first heard about it, I thought it might have potential for code
> reuse and whole-program optimization.  If you've ever imported something
> that causes irrelevant classes to take up space in your application's
> distribution, you might also wonder if it's possible to have reusable
> clojure code that isn't tied to java classes and classloaders.
>
>
There is that thing called Church Numerals that does something like that.

http://en.wikipedia.org/wiki/Church_encoding#Computation_with_Church_numerals


> On Wed, Jun 26, 2013 at 7:01 PM, emporas <empo...@gmail.com> wrote:
>
>> Hello, I have a question that is more of a Lisp question, than Clojure
>> specific, but it is in the true spirit of things as 'values'.
>>
>> Now that the practice of applying collision resistant hashes (ie unique
>> strings), to save multiple
>> versions of structures with the possibility of overlapping, is becoming
>> less deficient thanks to better
>> hardware, i am wondering if there is a compiler in lisp or anything
>> else, that has the ability to save
>> multiple versions of functions, that operate only on their arguments,
>> better known as deterministic or
>> pure functions.
>>
>> A compiler like that, it could keep all of the deterministic functions
>> ever written, the number of the them could only increase and never
>> decrease. That would not solve the versioning problem, but it could
>> sure alleviate it. In theory, at least, integers do not vary a lot from
>> one platform over another, only their
>> performance characteristics. That could enable the compiler to keep all
>> the versions of those functions
>> the operate on integers around, and the programmer to move backwards and
>> run whichever function he prefers, from all their different versions
>> over time.
>>
>> With my poor knowledge in Lisp, i think that Lisps-2 CL/Lfe are more
>> appropriate for this task than
>> Lisps-1 Clojure/Scheme. A language like Haskell that has explicit
>> annotations for the functions that
>> are not deterministic seems very close to that idea, too. In dynamic
>> languages that there is no out of
>> the box solution for this, one could simply attach an image of a
>> chimpanzee scratching it's head to the
>> metadata of the impure functions, and solve the problem instantly!
>>
>> Does anyone know if there is any work in that area, such as compilers,
>> academic papers or am i horribly disguided?
>>
>> --
>> --
>> 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.
>
>
>

-- 
-- 
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