Re: (bytecode 'function-that-you-want-to-view-bytecode-of) ?

2014-03-16 Thread Karsten Schmidt
Jules, there's also the no.disassemble lein plugin which works for any repl:

https://github.com/gtrak/no.disassemble
On 16 Mar 2014 00:13, "Jules"  wrote:

>
> H
>
> Looks like it's time I figured out how to use Cider - it appears to have
> support for decompiling funcs at the repl...
>
> https://github.com/clojure-emacs/cider/pull/338
>
> Just what I want :-)
>
>
> Jules
>
>>
>>  --
> 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/d/optout.
>

-- 
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/d/optout.


Re: purely functional math renderer

2014-03-16 Thread Jony Hudson
It doesn't help answer your question, but FWIW: I know MathJax renders 
dynamically into an existing DOM node because it needs to get sizing 
information before it renders. This means, for instance, that you can't 
even render into a DOM fragment off-screen.


Jony

On Saturday, 15 March 2014 03:36:04 UTC, t x wrote:
>
> Hi, 
>
>
>   I'm aware of MathJax, JsMath, MathQuill, MathDox. 
>
>
>   However, I'm wondering if anyone have implemented a pure clojure 
> math renderer (not just a binding, but with the actual rendering in 
> Clojure). 
>
>
>
>   What I find frustrating about existing solutions is their 
> im-pureness. The basic idea is: 
>
>   * my cljs code creates a div with some math inside of $\frac{2}{3}$ 
>
>   * I queue some javascript call, which then takes a dom node as 
> input, and through lots of icky stateful destructive updates, replaces 
> the dom element with a bunch of HTML/CSS that represents some math 
>
>
>   What I really want, would be a pure Javascript function, which does 
> something like: 
>
>   (defn magic-func [sexp-representing-math] 
>  ... does some magic ... 
>   .. returns a svg-node-tree which renders the math ...) 
>
>
>   I've spent a few hours of my life searching for this. I have not 
> found anything like it. 
>
>
>   Does anyone know of a piece of software which does something similar? 
>
>
>
> Thanks! 
>

-- 
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/d/optout.


[GSoC] Codexes project

2014-03-16 Thread Morgawr Havenlost
Hello everybody :)
I might be a bit too late, but I was interested in having a look at the 
Codexes project
for the GSoC 2014 (as linked here 
http://dev.clojure.org/display/community/Project+Ideas ), 
however I do not know how to contact the mentor or how to find him (irc?), 
what are the
required steps before submitting a proper proposal/application?

I'm still a bit new to GSoC so I'm sorry if this is the wrong place to ask! 

Morg.

-- 
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/d/optout.


Re: (bytecode 'function-that-you-want-to-view-bytecode-of) ?

2014-03-16 Thread Jules
Thanks, Karsten - it is dissasembly and not decompilation that I want :-) - 
 I'll take a look.

Jules


On Sunday, 16 March 2014 09:23:58 UTC, Karsten Schmidt wrote:
>
> Jules, there's also the no.disassemble lein plugin which works for any 
> repl:
>
> https://github.com/gtrak/no.disassemble
> On 16 Mar 2014 00:13, "Jules" > wrote:
>
>>
>> H
>>
>> Looks like it's time I figured out how to use Cider - it appears to have 
>> support for decompiling funcs at the repl...
>>
>> https://github.com/clojure-emacs/cider/pull/338
>>
>> Just what I want :-)
>>
>>
>> Jules
>>
>>>
>>>  -- 
>> 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
>> --- 
>> 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/d/optout.
>>
>

-- 
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/d/optout.


Re: (bytecode 'function-that-you-want-to-view-bytecode-of) ?

2014-03-16 Thread Jules
Yes - this is exactly what I was looking for :-) - thanks alot - will make 
my life much easier.

Jules

On Sunday, 16 March 2014 11:35:06 UTC, Jules wrote:
>
> Thanks, Karsten - it is dissasembly and not decompilation that I want :-) 
> -  I'll take a look.
>
> Jules
>
>
> On Sunday, 16 March 2014 09:23:58 UTC, Karsten Schmidt wrote:
>>
>> Jules, there's also the no.disassemble lein plugin which works for any 
>> repl:
>>
>> https://github.com/gtrak/no.disassemble
>> On 16 Mar 2014 00:13, "Jules"  wrote:
>>
>>>
>>> H
>>>
>>> Looks like it's time I figured out how to use Cider - it appears to have 
>>> support for decompiling funcs at the repl...
>>>
>>> https://github.com/clojure-emacs/cider/pull/338
>>>
>>> Just what I want :-)
>>>
>>>
>>> Jules
>>>

  -- 
>>> 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
>>> --- 
>>> 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/d/optout.
>>>
>>

-- 
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/d/optout.


Re: [GSoC] Codexes project

2014-03-16 Thread Ambrose Bonnaire-Sergeant
Hi Morg,

There's still time left, hopefully Jamie will chime in on the list.

Thanks,
Ambrose


On Sun, Mar 16, 2014 at 7:17 PM, Morgawr Havenlost wrote:

> Hello everybody :)
> I might be a bit too late, but I was interested in having a look at the
> Codexes project
> for the GSoC 2014 (as linked here
> http://dev.clojure.org/display/community/Project+Ideas ),
> however I do not know how to contact the mentor or how to find him (irc?),
> what are the
> required steps before submitting a proper proposal/application?
>
> I'm still a bit new to GSoC so I'm sorry if this is the wrong place to
> ask!
>
> Morg.
>
> --
> 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/d/optout.
>

-- 
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/d/optout.


Re: expectations 2.0 has been released

2014-03-16 Thread Jay Fields
Jochen (and anyone else affected by this): Sorry, took me a few days,
but I've released 2.0.7, which fixes all the bugs reported above.

Cheers, Jay

On Thu, Mar 13, 2014 at 6:54 AM, Jay Fields  wrote:
> Thanks for all the examples, I'll look today at getting these fixed up.
>
>
> On Thursday, March 13, 2014, Jochen  wrote:
>>
>> Hi Jay
>>
>> unfortunately I found another one, again on AssertionErrors but this time
>> with for-each:
>> (expect AssertionError (from-each [a [1 2]] (assert (string? a ;; all
>> pass as intended
>> (expect AssertionError (from-each [a [1 "2"]] (assert (string? a ;;
>> still all pass but should signal 1 error
>> (expect AssertionError (from-each [a ["1" 2]] (assert (string? a ;;
>> still all pass but should signal 1 error
>> (expect AssertionError (from-each [a ["1" "2"]] (assert (string? a ;;
>> shows both errors
>>
>> Ciao
>>
>> ...Jochen
>>
>> Am Mittwoch, 12. März 2014 02:28:37 UTC+1 schrieb Jay Fields:

 expectations is a minimilist's unit testing framework

 website: http://jayfields.com/expectations/
 github: https://github.com/jaycfields/expectations

 changelog:
 https://github.com/jaycfields/expectations/blob/master/CHANGELOG.md

 some large changes that will hopefully result in even more concise and
 maintainable tests.

 feedback always welcome.

 Jay
>>
>> --
>> 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 a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/exQyg9YUUas/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.

-- 
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/d/optout.


ANN Meltdown 1.0.0-beta8

2014-03-16 Thread Michael Klishin
Meltdown [1] is a Clojure interface to Reactor [2], an asynchronous
programming
toolkit for the JVM.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/16/meltdown-1-dot-0-0-beta8-is-released/

1. https://github.com/clojurewerkz/meltdown
2.
http://spring.io/blog/2013/11/12/it-can-t-just-be-big-data-it-has-to-be-fast-data-reactor-1-0-goes-ga

-- 
MK

http://github.com/michaelklishin
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 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/d/optout.


Re: purely functional math renderer

2014-03-16 Thread t x
The best I've sound so far is MathML.

Unfortunately:

  * it's FireFox only
  * Chrome dropped support
  * I really like Chrome's debugger

  * It's also slow-ish

On Sun, Mar 16, 2014 at 4:04 AM, Jony Hudson  wrote:
> It doesn't help answer your question, but FWIW: I know MathJax renders
> dynamically into an existing DOM node because it needs to get sizing
> information before it renders. This means, for instance, that you can't even
> render into a DOM fragment off-screen.
>
>
> Jony
>
>
> On Saturday, 15 March 2014 03:36:04 UTC, t x wrote:
>>
>> Hi,
>>
>>
>>   I'm aware of MathJax, JsMath, MathQuill, MathDox.
>>
>>
>>   However, I'm wondering if anyone have implemented a pure clojure
>> math renderer (not just a binding, but with the actual rendering in
>> Clojure).
>>
>>
>>
>>   What I find frustrating about existing solutions is their
>> im-pureness. The basic idea is:
>>
>>   * my cljs code creates a div with some math inside of $\frac{2}{3}$
>>
>>   * I queue some javascript call, which then takes a dom node as
>> input, and through lots of icky stateful destructive updates, replaces
>> the dom element with a bunch of HTML/CSS that represents some math
>>
>>
>>   What I really want, would be a pure Javascript function, which does
>> something like:
>>
>>   (defn magic-func [sexp-representing-math]
>>  ... does some magic ...
>>   .. returns a svg-node-tree which renders the math ...)
>>
>>
>>   I've spent a few hours of my life searching for this. I have not
>> found anything like it.
>>
>>
>>   Does anyone know of a piece of software which does something similar?
>>
>>
>>
>> Thanks!
>
> --
> 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/d/optout.

-- 
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/d/optout.


Re: XOR two arrays into a third on Clojure

2014-03-16 Thread pete windle
Consider using criterium or similar for benchmarking. (time) is ok for rough 
and ready, but by the time you've navigated the tiered JIT of the JVM it just 
isn't good enough to be able to make useful inferences from the results.

Pete

-- 
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/d/optout.


Re: STM and persistent data structures performance on mutli-core archs

2014-03-16 Thread Softaddicts
I agree with most of his arguments but not all of them.

Memory subsystems have always been a major concern.
Since 35 years ago, many designs went through simulation before
burning anything on chip. Especially SMP designs with shared memory
given the cost of prototyping.

Simulations used "typical" workloads to identify which strategies should
be implemented in hardware.  Shared memory sub-systems proved to be the 
main bottleneck every time.

Any choices of strategies could result in bottlenecks if the payload differed 
somewhat from the "average" simulated ones.
Threads appeared much more later and this alone makes you wonder about
the pressure increase on shared memory sub-systems.

The numbers Martin claims as speed increases (myth #x,
CPUs are not getting faster) are simply better/worse hardware strategy choices 
which decreased idle time.
Manufacturers are doing the same job as decade ago, simulating and finding 
how to optimize as much as possible typical workloads.

We cannot break the physical barriers anymore, we need a technology
upgrade (atom level, quantum level, whatever). But such a change is
no more elegant than a brute force approach that will reshape 
performance and create a new barrier farther away.

Having tuned generated machine code when domestic appliance sized
computers were the norm, I would not like to get back to this age of
analyzing the hardware to twist my software accordingly.

Relying on hardware architectures to craft software is not to me a path
with a bright future. Server hardware changes often enough that such
an approach would mess design and be unsustainable in the long run.

We may end up someday with "tunable" hardware that adapt to
workloads. By tunable I mean giving the hardware instructions on how to
behave. This would be better than the above. We had such options with
traditional compilers.

I think that significant optimizations have to be decided at a higher level.
I doubt that any of that can be implemented at the hardware level alone
and let it decide on the fly. This sounds like magic, too good to be true.

I am also quite convinced that optimizing in hardware single threaded 
and muti-threaded processing are antagonist goals given the current
hardware designs.

Martin hits a number of significant nails, we need to be
aware of hardware limitations and we need to measure the impacts of
our choices and change these within some reachable goals.

However achieving 10% or less cpu idle time on a specific server architecture
to me is not a goal.

I'm interested by the constraints I have to met (business and physical ones)
and playing within a large playground to meet these wether it involves
using more powerful/specially designed hardware or using better
software designs.

Luc P.

> Martin's point about immutable and persistent data structures is further 
> developed in his interview on infoq 
> , you 
> can skim to point #9 if you're in a hurry.
> Overall what he says is that in terms of scalability of the development 
> activity, immutability and persistence are great ideas, since we don't 
> have to deal with non-deterministic behaviour any more. When one needs 
> to scale the running system, meaning increasing the rate at which the 
> persistent data structure is updated, these can lead to performance 
> issues in various ways:
> - longer GC pauses because persistency increases the number of objects 
> that are neither very short-lived nor long-lived,
> - contention because the root of the tree of the persistent data 
> structure becomes the focal point of concurrency,
> - increased CPU cache misses since persistent data structures are trees 
> that increasingly span larger non-contiguous and non-sequential parts of 
> memory
> Of these the last point is probably the most painful, since there's no 
> way to deal with it unless one reconsiders the whole persistent data 
> structure.
> In other words increasing the number of threads and cores may eventually 
> lower throughput because the time taken for dealing with these issues 
> (GC pauses, locking, cache misses) grows larger than the time taken for 
> useful computation.
> I can't backup any of this with actual data and experience. However I 
> think this old thread about poor performance on multicore 
>  does 
> provide a clear picture of the problem, which becomes even clearer with 
> actual stats showing 
> CPUs 
> were 
> 83% idle 
> , i.e. 
> waiting for memory.
> 
> Also one should view Martin's other vidoes on infoq 
>  to get a better 
> understanding of his arguments. He's actually quite positive about 
> Clojure in general. I

ANN: Dakait v0.1.0

2014-03-16 Thread Uday Verma
Hello Everyone,

I've just posted a new release for Dakait v0.1.0 which I believe is 
reasonably stable.  Work is on-going and any feedback, suggestions, advice, 
criticism or pull-requests would be greatly appreciated.

https://github.com/verma/dakait
http://udayv.com/dakait/ <-- screenshots and more information

I've been trying to learn Clojure and have been working on this project as 
a way of doing so.  I keep updating the project with whatever new I learn 
and hope to continue doing so.

Thanks,
Uday

-- 
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/d/optout.


Re: CLJS Advanced Compilation & JS Libraries lacking externs

2014-03-16 Thread Joel Holdbrooks
This is brilliant. Thanks for sharing!

On Friday, March 14, 2014 5:39:06 PM UTC-7, David Nolen wrote:
>
> I've written up an explanation how to make this work 
> http://swannodette.github.io/2014/03/14/externs-got-you-down/
>
> David
>

-- 
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/d/optout.


Re: CLJS Advanced Compilation & JS Libraries lacking externs

2014-03-16 Thread Joel Holdbrooks
I notice you mention:

> For some JavaScript libraries there is an acceptable workaround

Under what circumstances would this not be acceptable?

On Friday, March 14, 2014 5:39:06 PM UTC-7, David Nolen wrote:
>
> I've written up an explanation how to make this work 
> http://swannodette.github.io/2014/03/14/externs-got-you-down/
>
> David
>

-- 
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/d/optout.


ANN: Retrograde v0.9

2014-03-16 Thread Stathis Sideris


Hello,


I would like to announce the first release of retrograde, a small Clojure 
DSL that deals with the problem of accessing information and results from 
previous iterations during the **lazy** transformation of a sequence or 
during the **lazy** generation of an infinite sequence. The main motivation 
for retrograde was the observation that in tricky cases, when a calculation 
requires access to previous iterations, Clojure programmers (the author at 
least!) tend to resort to using loop/recur, therefore losing laziness. Even 
if one sticks to lazy-seq, handling the passing of various bits of "state" 
to the next iteration is awkward at best, with the most horrific cases 
including use of real state such as atoms etc.

Retrograde allows access to the results of previous iterations using the 
"prime" syntax. For example, here is an infinite list of Fibonacci numbers:

(retrograde/calculate [x 1 (if (and x' x'') (+ x' x'') 0)])

x is defined as the name of the result in each iteration. The result of the 
previous iteration then becomes available as x' (read as "x-prime") and the 
result of the iteration before that is available as x''. You can go back as far 
as you like by adding more prime symbols (single quotes) to the name of your 
result. 

The optional 1 value after the name of the result is the value of x' during the 
first iteration. This is followed by the code fragment that calculates the 
value of x in each iteration. 

The code produced by the macro uses lazy-seq to make sure that the calculation 
happens in a lazy manner, without you having to handle the passing of "state" 
to the next iteration. 

Retrograde also supports access to previous iterations via accumulators. Let's 
look into the (made up) problem of lazily transforming a sequence of numbers so 
that each output element is the input number added to all the odd numbers that 
have occurred in the sequence so far:


> (retrograde/transform
   [odds [] (if (odd? x) (conj odds' x) odds')
x (apply + (conj odds' x))]
   (range 10))
(0 1 3 4 8 9 15 16 24 25)


Leiningen dependency: [retrograde "0.9"] 
Github: https://github.com/stathissideris/retrograde

Feeback in any form is more than welcome, please let me know.

Thanks,

Stathis


-- 
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/d/optout.


New Functional Programming Job Opportunities

2014-03-16 Thread Functional Jobs
Here are some functional programming job opportunities that were posted

recently:



Senior Engineer & Architect - Clojure, JavaScript and more at Q-Centrix

http://functionaljobs.com/jobs/8695-senior-engineer--architect-clojure-javascript-and-more-at-q-centrix



Cheers,

Sean Murphy

FunctionalJobs.com


-- 
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/d/optout.