Re: Compilation model

2012-02-24 Thread Softaddicts
you can use the *compile-files* flag
if you need to differentiate compiling versus running contexts.

This will be useful if you use AOT to create class files for later packaging.
This flag is useful to avoid global code chunks to run when they create
side effects (runtime inits, ...). You do not want these to occur at compile 
time
if you expect to package a jar file.

This applies to the JVM Clojure implementation (and probably CLR).

The flag allows to you avoid executing code at compilation time but it will not 
allow you
to create compile time definitions that will disappear at runtime
as  there's no fence between these .
It's a convenience to postpone code execution.

I did not dig much in the JS clojure implementation yet.
I suspect there's no need for this, the compiler being external to the runtime 
and 
there's no runtime eval (well a very restricted runtime sexpr serialization 
feature).
In this implementation, there's a clean split between these two contexts from
what I know at this point.

Luc P.


 
 
 Hi all,
 
 I had a question about clojure's compilation model, which my co-worker
 suggest to redirect here :-)
 
 I wonder what clojure does during compilation of a file? Can
 side-effects occur (definition of variables, functions, macros, etc in
 the compiler)? Does clojure have an EVAL-WHEN construct for specifying
 compile-time evaluations, or is there a convention for splitting code
 across different source files? And then, how does this tie in to a
 module system?
 
 Thanks in advance for any information or references :-)
 
 Yong
 
 
 -- 
 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
 
--
Softaddictslprefonta...@softaddicts.ca sent by ibisMail!

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


Call for Presentations: Commercial Users of Functional Programming 2012

2012-02-24 Thread Chouser
The 2012 CUFP call for presentations is out:
http://cufp.org/cufp-2012-call-presentations

The program committee is hoping for better representation from the
Clojure community this year, so if you've got something interesting to
say about Clojure, please submit a proposal!

--Chouser

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


Mamet Ipsum

2012-02-24 Thread Tom Vaughan
http://mametipsum.herokuapp.com/

I wrote this to teach myself Clojure. The code is on GitHub: 
https://github.com/tvaughan/mametipsum. Thanks for Clojure. I enjoyed it. 
Any comments are appreciated.

-Tom


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

Re: How to be lazy…

2012-02-24 Thread JuanManuel Gimeno Illa
One implementation using only one recursive function and the sequence 
library:

(defn split-at-subsequence [mark input]
(when-let [sequence (seq input)]
(let [len   (count mark)
  pieces  (partition-all len 1 sequence)
  [fst rst] (split-with #(not= mark %) pieces)
  fst(map first fst)
  rst(map first (drop len rst))]
(remove empty?
(lazy-seq
 (list* fst
(split-at-subsequence mark rst)))

I've created https://gist.github.com/1901772 for the code.

Hope this helps,

Juan Manuel

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

Re: How to be lazy…

2012-02-24 Thread JuanManuel Gimeno Illa
Maybe this version is clearer:

(defn split-at-subsequence [mark input]
(when-let [sequence (seq input)]
(let [len   (count mark)
  pieces   (partition-all len 1 sequence)
  [fst rst]  (split-with #(not= mark %) pieces)
  head  (map first fst)
  rst-input (map first (drop len rst))
  tail (lazy-seq (split-at-subsequence mark rst-input))]
(if (empty? head)
tail
(list* head tail)

I think it would be better to create the lazy-seq over a function that uses 
the pieces in order to not to explode input with partition-all and 
de-explode it with map-first before the recursive call.

Juan Manuel

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

Re: How to be lazy…

2012-02-24 Thread JuanManuel Gimeno Illa
One variation making the lazy-sequence only over the pieces:

(defn split-at-subsequence [mark input]
(let [len (count mark)
  split-at-subseq (fn split-at-subseq [pieces]
  (when (seq pieces)
  (let [[fst rst]  (split-with #(not= mark 
%) pieces)
head   (map first fst)
rst-pieces (drop len rst)
tail   (lazy-seq 
(split-at-subseq rst-pieces))]
  (if (empty? head)
  tail
  (list* head tail)]
(when-let [sequence (seq input)]
(split-at-subseq (partition-all len 1 sequence)

I suppose it is better to define a private function for the computation of 
the lazy-sequence than define it inside the let.

Juan Manuel

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

Re: How to be lazy…

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 11:30 AM, JuanManuel Gimeno Illa
jmgim...@gmail.com wrote:
 Maybe this version is clearer:

 (defn split-at-subsequence [mark input]
     (when-let [sequence (seq input)]
         (let [len       (count mark)
               pieces   (partition-all len 1 sequence)
               [fst rst]  (split-with #(not= mark %) pieces)
               head      (map first fst)
               rst-input (map first (drop len rst))
               tail         (lazy-seq (split-at-subsequence mark rst-input))]
             (if (empty? head)
                 tail
                 (list* head tail)

 I think it would be better to create the lazy-seq over a function that uses
 the pieces in order to not to explode input with partition-all and
 de-explode it with map-first before the recursive call.

That hangs on the case

(first (second (split-at-subsequence [1 2] (range

again. I don't know why; from what I can see, it shouldn't, since
everything seems sufficiently lazy.

Maybe could also use some optimization:

(defn split-at-subsequence [mark input]
  (when-let [sequence (seq input)]
(let [len  (count mark)
  pieces   (partition-all len 1 sequence)
  step (fn step [rst-input]
 (when rst-input
   (lazy-seq
 (let [[fst rst] (split-with #(not= mark %) rst-input)]
 (cons fst (step (nthnext rst len)))]
  (map #(map first %) (remove nil? (map seq (step pieces)))

This avoids computing len and pieces and (map first ...) over and
over, and uses nthnext instead of drop to save some calls to seq. The
split-with could be replaced by a loop to save traversing part of the
sequence twice, but then it would definitely be impossible to fix the
hang with (first (second (split-at-subsequence [1 2] (range.

It's probably possible to do quite a bit better, though, perhaps by
using Boyer-Moore, though I'm not sure how easily Boyer-Moore can be
made lazy, especially lazy enough to avoid than hang.

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


Bret Victor - Inventing on Principle

2012-02-24 Thread Damien Lepage
Hi Everyone,

You may have seen this already, if not I believe it's worth investing 1h of
your life:
http://vimeo.com/36579366

That's already a good candidate for the technical talk of the year, if not
the decade IMO.
Ok, I'm getting a bit too enthusiastic here but this is so inspiring.

After watching it, you can't help thinking that we have a whole new world
to invent.
As a side note, you may start thinking that a REPL is not good enough.
- Personal message to Laurent Petit: please watch and start thinking about
CCW 1.0 ;o) -
It also feels like ClojureScript is on the right path.

But, most importantly, beyond any technical consideration, the last part is
a great life lesson.

-- 
Damien Lepage
http://damienlepage.com
@damienlepage https://twitter.com/#!/damienlepage
linkedin.com/in/damienlepage http://www.linkedin.com/in/damienlepage

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 1:29 PM, Damien Lepage damienlep...@gmail.com wrote:
 Hi Everyone,

 You may have seen this already, if not I believe it's worth investing 1h of
 your life:
 http://vimeo.com/36579366

 That's already a good candidate for the technical talk of the year, if not
 the decade IMO.

What is it with people these days and using videos for stuff that
could be far better posted as text?

A talk can inherently be presented as text, perhaps HTML with a few
inline images if there are slides.

And text (or HTML) has some HUGE advantages:

* Download size is kilobytes, not gigabytes

* Can be viewed on dialup, mobile, etc. without stuttering, not
  working at all, costing an arm and a leg, or etc.

* Google can find it by the full content of the talk, not just what
  few keywords someone slaps onto the video's youtube page plus the
  inanities added by the inevitable swarm of troll commenters.

* You can search in it yourself with ctrl-F in your browser.

* You can skim it.

* If you're a fast reader, you can probably read it and comprehend
  it all in less than an hour.

* You can navigate in it very easily, using normal scrolling, search,
  and other browser tools, and see where you're going while you
  scroll, rather than having to drag a tiny little thingy across a
  tiny little seek bar blind, drop it, and then wait 40 seconds while
  a little wheel spins for the Flash player to *maybe* jump to the
  spot in the video, whereupon you will repeat the process a few
  times with ever finer adjustments; but the player might hang
  or snap back to where it was or crash instead.

* You can keep a copy for offline viewing without needing:
  a) hacking tools to bypass the attempts by the popular video
 sites to be streaming-only,
  b) one or another big bloated piece of media player software that
 will steal file associations at inconvenient and random times,
 and
  c) a shitload of disk space.

* No extra plugins etc. needed to view it that guzzle CPU and
  memory, crash at inconvenient times, and the like. You can view
  it in Lynx (minus the slides, if any) if you want to. You can
  view it on a 286 with no graphics card (not no 3D card, no
  graphics, period, just 80x24 text mode). You can view it on your
  old Commodore 64 with 300 baud modem if you want to and it won't
  take sixty thousand years to download on that either.

* You can copy and paste bits of it into a snippets file or
  whatever, if there's bits you want to refer back to later that
  gave you technical ideas. Or print it out and apply hiliter to
  key passages. Or etc.

* If you're blind you can still get screen-reader software to
  read it for you. If you're deaf, on the other hand, a video is
  quite likely to be completely useless, since streaming framerates
  and lip-reading don't tend to mix and none of these things seem
  to be closed-captioned.

* Text is easy and cheap to mirror widely around the net and
  relatively easy to translate to other languages. Video can be
  hosted free at only a handful of sites and is more work to
  translate.

What does video get you that text or HTML+images couldn't get you?

* You can hear what the guy's voice actually sounds like.

* You get to see a talking head bobbing around and lips moving in
  a jerky, stuttery sort of way.

* You get the pronunciation, but not the spelling, of the obscure
  technical/latin words that get used, instead of the other way
  'round.

* There can be full-motion video demonstrations of things.

Not worth what you lose, IMO, even if you aren't deaf, and especially
if you are. Full-motion video demonstrations can be separate short
videos embedded in a text+images web page.

Oh, and by the way, your post doesn't even bother to actually say
what, exactly, the talk is about. It implies strongly that it has
something to do with interactive development tools, and it's clear
that something in it wowed you, but that's it, and the URL itself is
completely opaque. Apparently the only way to find out in more detail
what the talk's topic is is to click the link, at minimum, and maybe
you even have to play the video part-way.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread gaz jones
Are you Ken Wesson with a new account?

On Fri, Feb 24, 2012 at 1:00 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 1:29 PM, Damien Lepage damienlep...@gmail.com wrote:
 Hi Everyone,

 You may have seen this already, if not I believe it's worth investing 1h of
 your life:
 http://vimeo.com/36579366

 That's already a good candidate for the technical talk of the year, if not
 the decade IMO.

 What is it with people these days and using videos for stuff that
 could be far better posted as text?

 A talk can inherently be presented as text, perhaps HTML with a few
 inline images if there are slides.

 And text (or HTML) has some HUGE advantages:

 * Download size is kilobytes, not gigabytes

 * Can be viewed on dialup, mobile, etc. without stuttering, not
  working at all, costing an arm and a leg, or etc.

 * Google can find it by the full content of the talk, not just what
  few keywords someone slaps onto the video's youtube page plus the
  inanities added by the inevitable swarm of troll commenters.

 * You can search in it yourself with ctrl-F in your browser.

 * You can skim it.

 * If you're a fast reader, you can probably read it and comprehend
  it all in less than an hour.

 * You can navigate in it very easily, using normal scrolling, search,
  and other browser tools, and see where you're going while you
  scroll, rather than having to drag a tiny little thingy across a
  tiny little seek bar blind, drop it, and then wait 40 seconds while
  a little wheel spins for the Flash player to *maybe* jump to the
  spot in the video, whereupon you will repeat the process a few
  times with ever finer adjustments; but the player might hang
  or snap back to where it was or crash instead.

 * You can keep a copy for offline viewing without needing:
  a) hacking tools to bypass the attempts by the popular video
     sites to be streaming-only,
  b) one or another big bloated piece of media player software that
     will steal file associations at inconvenient and random times,
     and
  c) a shitload of disk space.

 * No extra plugins etc. needed to view it that guzzle CPU and
  memory, crash at inconvenient times, and the like. You can view
  it in Lynx (minus the slides, if any) if you want to. You can
  view it on a 286 with no graphics card (not no 3D card, no
  graphics, period, just 80x24 text mode). You can view it on your
  old Commodore 64 with 300 baud modem if you want to and it won't
  take sixty thousand years to download on that either.

 * You can copy and paste bits of it into a snippets file or
  whatever, if there's bits you want to refer back to later that
  gave you technical ideas. Or print it out and apply hiliter to
  key passages. Or etc.

 * If you're blind you can still get screen-reader software to
  read it for you. If you're deaf, on the other hand, a video is
  quite likely to be completely useless, since streaming framerates
  and lip-reading don't tend to mix and none of these things seem
  to be closed-captioned.

 * Text is easy and cheap to mirror widely around the net and
  relatively easy to translate to other languages. Video can be
  hosted free at only a handful of sites and is more work to
  translate.

 What does video get you that text or HTML+images couldn't get you?

 * You can hear what the guy's voice actually sounds like.

 * You get to see a talking head bobbing around and lips moving in
  a jerky, stuttery sort of way.

 * You get the pronunciation, but not the spelling, of the obscure
  technical/latin words that get used, instead of the other way
  'round.

 * There can be full-motion video demonstrations of things.

 Not worth what you lose, IMO, even if you aren't deaf, and especially
 if you are. Full-motion video demonstrations can be separate short
 videos embedded in a text+images web page.

 Oh, and by the way, your post doesn't even bother to actually say
 what, exactly, the talk is about. It implies strongly that it has
 something to do with interactive development tools, and it's clear
 that something in it wowed you, but that's it, and the URL itself is
 completely opaque. Apparently the only way to find out in more detail
 what the talk's topic is is to click the link, at minimum, and maybe
 you even have to play the video part-way.

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?

Who?

Wait. Surely you don't think that it's not possible for more than one
person to prefer text to video as a way of disseminating verbal
information over the internet, given all of text's advantages in such
areas as bandwidth, cost, and tool support?

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Marco Abis
 What does video get you that text or HTML+images couldn't get you?

watching the video would answer the question and would have probably
taken you less time than writing this email...

 Not worth what you lose, IMO

how can you know if you haven't watched the video?

-- 
Marco Abis

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


Re: How to be lazy…

2012-02-24 Thread JuanManuel Gimeno Illa

El viernes 24 de febrero de 2012 18:46:03 UTC+1, Cedric Greevey escribió:

 On Fri, Feb 24, 2012 at 11:30 AM, JuanManuel Gimeno Illa wrote:

  I think it would be better to create the lazy-seq over a function that 
 uses
  the pieces in order to not to explode input with partition-all and
  de-explode it with map-first before the recursive call.

 That hangs on the case

 (first (second (split-at-subsequence [1 2] (range

 again. I don't know why; from what I can see, it shouldn't, since
 everything seems sufficiently lazy.

My third version does this and I think  does not hang on the example.

Maybe could also use some optimization:

 (defn split-at-subsequence [mark input]
   (when-let [sequence (seq input)]
 (let [len  (count mark)
   pieces   (partition-all len 1 sequence)
   step (fn step [rst-input]
  (when rst-input
(lazy-seq
  (let [[fst rst] (split-with #(not= mark %) rst-input)]
  (cons fst (step (nthnext rst len)))]
   (map #(map first %) (remove nil? (map seq (step pieces)))

 This avoids computing len and pieces and (map first ...) over and
 over, and uses nthnext instead of drop to save some calls to seq. 

 

 The
 split-with could be replaced by a loop to save traversing part of the
 sequence twice, but then it would definitely be impossible to fix the
 hang with (first (second (split-at-subsequence [1 2] (range.

What I don't understand of your solution is the (map seq (step pieces)) 
because for me it is clear that each of the sequences generated by step is 
a seq, so why do you need to seq it?

It's probably possible to do quite a bit better, though, perhaps by
 using Boyer-Moore, though I'm not sure how easily Boyer-Moore can be
 made lazy, especially lazy enough to avoid than hang.

Interesting 

Juan Manuel 

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:13 PM, Marco Abis marco.a...@gmail.com wrote:
 What does video get you that text or HTML+images couldn't get you?

 watching the video would answer the question and would have probably
 taken you less time than writing this email...

Actually, it would have taken an hour, and writing the email took much less.

 Not worth what you lose, IMO

 how can you know if you haven't watched the video?

Because it was described as a talk. That means the bulk of the
actually meaningful content in it comes from someone's lips flapping.
That can be rendered as text, easily. If there are slides, ... but
I've already been over all of that.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread gaz jones
nah it's possible i guess, but he's the only other person i've ever
seen type an essay about it on this forum in reply to someone posting
a link to a video. also, he posts and yours are very similar and he
disappeared shortly before you arrived. AND YOU WOULD HAVE GOT AWAY
WITH IT IF IT WASNT FOR THOSE MEDDLING KIDS!!

On Fri, Feb 24, 2012 at 1:12 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?

 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Marco Abis
First: sorry, my reply was meant to be sent to you only, not the list

 Actually, it would have taken an hour, and writing the email took much less.

...

 Because it was described as a talk. That means the bulk of the
 actually meaningful content in it comes from someone's lips flapping.
 That can be rendered as text, easily. If there are slides, ... but
 I've already been over all of that.

you are wrong, watch the video first

-- 
Marco Abis

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


Re: How to be lazy…

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:17 PM, JuanManuel Gimeno Illa
jmgim...@gmail.com wrote:
 What I don't understand of your solution is the (map seq (step pieces))
 because for me it is clear that each of the sequences generated by step is a
 seq, so why do you need to seq it?

It's the combination of (remove nil? (map seq ...)) that gets rid of
the empty seqs in cases like (split-at-subsequence [3 4] [1 2 3 4 3 4
5 6]). I don't know if it's any more efficient than (remove empty?
...) though. But if the inner loop were modified so no empty seqs that
weren't already nil could be generated, it could be reduced to just
(remove nil? ...) and be more efficient then.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:19 PM, Marco Abis marco.a...@gmail.com wrote:
 First: sorry, my reply was meant to be sent to you only, not the list
 Because it was described as a talk. That means the bulk of the
 actually meaningful content in it comes from someone's lips flapping.
 That can be rendered as text, easily. If there are slides, ... but
 I've already been over all of that.

 you are wrong,

No, I am *not* wrong. A talk can be translated into text+embeds with
very little or nothing being lost, almost by definition.

It might be the case that the OP was wrong when he described the video
in question as a talk, but that's a completely different matter.

Regardless, I highly doubt that there's anywhere close to 60 minutes
of video in there that couldn't be better presented in some other way.
Most likely, it would be better as text and a few short video
segments, the latter adding up to much less than 60 minutes in
duration.

 watch the video

No. A full hour is way, way too long for something analogous to a blog
post or a mailing list message, and I have lots of other demands on my
time.

(As for gaz's conspiracy theory, I won't even dignify that with a
separate response.)

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Jay Fields
On Fri, Feb 24, 2012 at 2:12 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?

 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?

Surely it's possible that you've never heard of Ken Wesson, he
disappeared right before you joined, you respond to emails in the same
manner, you share the same opinions. Seems legit, Ken.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Mark Rathwell
On Fri, Feb 24, 2012 at 2:25 PM, Jay Fields j...@jayfields.com wrote:
 On Fri, Feb 24, 2012 at 2:12 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?

 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?

 Surely it's possible that you've never heard of Ken Wesson, he
 disappeared right before you joined, you respond to emails in the same
 manner, you share the same opinions. Seems legit, Ken.

If it is you, Ken, welcome back ;)  I'm no doubt in the minority, but
I've actually kind of missed your postings.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:25 PM, Jay Fields j...@jayfields.com wrote:
 On Fri, Feb 24, 2012 at 2:12 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?

 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?

 Surely it's possible that you've never heard of Ken Wesson, he
 disappeared right before you joined, you respond to emails in the same
 manner, you share the same opinions. Seems legit, Ken.

OK. I googled the group archives. Seems there was a Ken Wesson active
on the list for a while, but he disappeared a couple of months before
I joined. I'm not sure why people think I might be him.

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


Re: How to be lazy…

2012-02-24 Thread Alan Malloy
Why would you (remove nil? (map f coll))? That's what keep is for:
(keep f coll).

On Feb 24, 11:20 am, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:17 PM, JuanManuel Gimeno Illa

 jmgim...@gmail.com wrote:
  What I don't understand of your solution is the (map seq (step pieces))
  because for me it is clear that each of the sequences generated by step is a
  seq, so why do you need to seq it?

 It's the combination of (remove nil? (map seq ...)) that gets rid of
 the empty seqs in cases like (split-at-subsequence [3 4] [1 2 3 4 3 4
 5 6]). I don't know if it's any more efficient than (remove empty?
 ...) though. But if the inner loop were modified so no empty seqs that
 weren't already nil could be generated, it could be reduced to just
 (remove nil? ...) and be more efficient then.

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


Re: How to be lazy…

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:43 PM, Alan Malloy a...@malloys.org wrote:
 Why would you (remove nil? (map f coll))? That's what keep is for:
 (keep f coll).

Why would you (remove nil? (map f coll))? Because you didn't know
about keep, obviously. :)

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Devin Walters
@cedric: I think you've made your point. I know you're not asking for advice, 
but I think the constructive thing would have been to ask: Could you please 
provide more context? Are there slides available of this talk? If you want to 
rant about this newfangled video contraption, this list is not the place.

'(Devin Walters)


On Friday, February 24, 2012 at 1:13 PM, Marco Abis wrote:

  What does video get you that text or HTML+images couldn't get you?
 
 
 
 watching the video would answer the question and would have probably
 taken you less time than writing this email...
 
  Not worth what you lose, IMO
 
 how can you know if you haven't watched the video?
 
 -- 
 Marco Abis
 
 -- 
 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 
 (mailto: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 
 (mailto: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 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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Daniel E. Renfer
On 02/24/2012 02:42 PM, Cedric Greevey wrote:
 On Fri, Feb 24, 2012 at 2:25 PM, Jay Fields j...@jayfields.com wrote:
 On Fri, Feb 24, 2012 at 2:12 PM, Cedric Greevey cgree...@gmail.com wrote:
 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com wrote:
 Are you Ken Wesson with a new account?
 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?
 Surely it's possible that you've never heard of Ken Wesson, he
 disappeared right before you joined, you respond to emails in the same
 manner, you share the same opinions. Seems legit, Ken.
 OK. I googled the group archives. Seems there was a Ken Wesson active
 on the list for a while, but he disappeared a couple of months before
 I joined. I'm not sure why people think I might be him.


Ken Wesson was noted for having strong opinions as was a noted hater of
videos where text will do.

https://groups.google.com/d/msg/clojure/0kCwGrFU5zs/NGclkY46fvEJ

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Timothy Baldridge
Bringing this back on topic, I watched the video. Wow! was it worth
it. This guy has some pretty mind-blowing demos. I highly recommend
this, I'm going to have to sit down soon and code up a clone of his
binary search tree demo.

Timothy

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Cedric Greevey
On Fri, Feb 24, 2012 at 2:51 PM, Daniel E. Renfer duck112...@gmail.com wrote:
 On 02/24/2012 02:42 PM, Cedric Greevey wrote:
 OK. I googled the group archives. Seems there was a Ken Wesson active
 on the list for a while, but he disappeared a couple of months before
 I joined. I'm not sure why people think I might be him.

 Ken Wesson was noted for having strong opinions as was a noted hater of
 videos where text will do.

Most of us on this list probably have strong opinions -- it tends to
go with the territory of being smarter than the average bear. As for
hating videos where text will do, need I repeat my list of bullet
points again? It's quite *obvious*. It's no more surprising for
multiple techies to find videos-where-text-will-do to be a troubling
trend than for techies to find that Lisps and even Algols are nicer
languages to program large systems in than Visual Basic. :) Especially
since we techies are very used to using search tools and other things
specifically geared around finding *text*, and often have multiple
devices including mobile where bandwidth costs can quickly become
exorbitant.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Andy Fingerhut
Perhaps someone will volunteer to transcribe it and post that.  You know, maybe 
someone who can type quickly and prefers text. :-)

I've done that for one of Rich's earlier talks posted as video.  It takes time, 
and I'm not volunteering for this one.

Andy

On Feb 24, 2012, at 11:57 AM, Cedric Greevey wrote:

 On Fri, Feb 24, 2012 at 2:51 PM, Daniel E. Renfer duck112...@gmail.com 
 wrote:
 On 02/24/2012 02:42 PM, Cedric Greevey wrote:
 OK. I googled the group archives. Seems there was a Ken Wesson active
 on the list for a while, but he disappeared a couple of months before
 I joined. I'm not sure why people think I might be him.
 
 Ken Wesson was noted for having strong opinions as was a noted hater of
 videos where text will do.
 
 Most of us on this list probably have strong opinions -- it tends to
 go with the territory of being smarter than the average bear. As for
 hating videos where text will do, need I repeat my list of bullet
 points again? It's quite *obvious*. It's no more surprising for
 multiple techies to find videos-where-text-will-do to be a troubling
 trend than for techies to find that Lisps and even Algols are nicer
 languages to program large systems in than Visual Basic. :) Especially
 since we techies are very used to using search tools and other things
 specifically geared around finding *text*, and often have multiple
 devices including mobile where bandwidth costs can quickly become
 exorbitant.
 
 -- 
 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 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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Softaddicts
I need a braille version, any volunteer ?
BTWY, what was the initial subject of this thread ?

I'm half-joking here, welcome back Mr Wesson.

:

Mr Smith



 Perhaps someone will volunteer to transcribe it and post that.  You know, 
 maybe someone who can type quickly and prefers text. :-)
 
 I've done that for one of Rich's earlier talks posted as video.  It takes 
 time, and I'm not volunteering for this one.
 
 Andy
 
 On Feb 24, 2012, at 11:57 AM, Cedric Greevey wrote:
 
  On Fri, Feb 24, 2012 at 2:51 PM, Daniel E. Renfer duck112...@gmail.com 
  wrote:
  On 02/24/2012 02:42 PM, Cedric Greevey wrote:
  OK. I googled the group archives. Seems there was a Ken Wesson active
  on the list for a while, but he disappeared a couple of months before
  I joined. I'm not sure why people think I might be him.
  
  Ken Wesson was noted for having strong opinions as was a noted hater of
  videos where text will do.
  
  Most of us on this list probably have strong opinions -- it tends to
  go with the territory of being smarter than the average bear. As for
  hating videos where text will do, need I repeat my list of bullet
  points again? It's quite *obvious*. It's no more surprising for
  multiple techies to find videos-where-text-will-do to be a troubling
  trend than for techies to find that Lisps and even Algols are nicer
  languages to program large systems in than Visual Basic. :) Especially
  since we techies are very used to using search tools and other things
  specifically geared around finding *text*, and often have multiple
  devices including mobile where bandwidth costs can quickly become
  exorbitant.
  
  -- 
  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 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
 
--
Softaddictslprefonta...@softaddicts.ca sent by ibisMail!

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Damien Lepage
Sorry, I certainly didn't intend to start such a heated debate ;o)
Hopefully some of you appreciate the link but you're all free to ignore.
The truth is, no matter the media, there are too many interesting things
and you need to choose.
I had this video in my todo list for a week before I took the time to watch
it.
After that, I thought it was kind of special and worth sharing, any textual
representation would betray its essence in my opinion.


2012/2/24 Andy Fingerhut andy.finger...@gmail.com

 Perhaps someone will volunteer to transcribe it and post that.  You know,
 maybe someone who can type quickly and prefers text. :-)

 I've done that for one of Rich's earlier talks posted as video.  It takes
 time, and I'm not volunteering for this one.

 Andy

 On Feb 24, 2012, at 11:57 AM, Cedric Greevey wrote:

  On Fri, Feb 24, 2012 at 2:51 PM, Daniel E. Renfer duck112...@gmail.com
 wrote:
  On 02/24/2012 02:42 PM, Cedric Greevey wrote:
  OK. I googled the group archives. Seems there was a Ken Wesson active
  on the list for a while, but he disappeared a couple of months before
  I joined. I'm not sure why people think I might be him.
 
  Ken Wesson was noted for having strong opinions as was a noted hater of
  videos where text will do.
 
  Most of us on this list probably have strong opinions -- it tends to
  go with the territory of being smarter than the average bear. As for
  hating videos where text will do, need I repeat my list of bullet
  points again? It's quite *obvious*. It's no more surprising for
  multiple techies to find videos-where-text-will-do to be a troubling
  trend than for techies to find that Lisps and even Algols are nicer
  languages to program large systems in than Visual Basic. :) Especially
  since we techies are very used to using search tools and other things
  specifically geared around finding *text*, and often have multiple
  devices including mobile where bandwidth costs can quickly become
  exorbitant.
 
  --
  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 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




-- 
Damien Lepage
http://damienlepage.com
@damienlepage https://twitter.com/#!/damienlepage
linkedin.com/in/damienlepage http://www.linkedin.com/in/damienlepage

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Michael Gardner
On Feb 24, 2012, at 1:51 PM, Daniel E. Renfer wrote:

 Ken Wesson was noted for having strong opinions as was a noted hater of
 videos where text will do.

He was also the only guy who would post replies with just you're welcome as 
the body. Until Cedric, that is...

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Laurent PETIT
Envoyé de mon iPhone

Le 24 févr. 2012 à 19:29, Damien Lepage damienlep...@gmail.com a écrit :

Hi Everyone,

You may have seen this already, if not I believe it's worth investing 1h of
your life:
http://vimeo.com/36579366

That's already a good candidate for the technical talk of the year, if not
the decade IMO.
Ok, I'm getting a bit too enthusiastic here but this is so inspiring.

After watching it, you can't help thinking that we have a whole new world
to invent.
As a side note, you may start thinking that a REPL is not good enough.
- Personal message to Laurent Petit: please watch and start thinking about
CCW 1.0 ;o) -


Hello Damien, I had already watched the first half of the talk.
I found the live demonstrations rather impressive, indeed. I've since
wondered how this could be generalized, which does not seem that easy.
Anyway, certainly a fun and entertaining goal to achieve !

Think about playing with overtone that way, for example ...

Also, sorry for you that your original question has been totally high
jacked by someone how's not even taken the time to understand what you were
talking about before starting his generalized rant.

Maybe not for CCW 1.0, but for 2.0, who knows ?

Anyway, Cedric the self-described smarter than average guy, please note
that, as usual, patches are welcome ;-)


It also feels like ClojureScript is on the right path.

But, most importantly, beyond any technical consideration, the last part is
a great life lesson.

-- 
Damien Lepage
http://damienlepage.com
@damienlepage https://twitter.com/#!/damienlepage
linkedin.com/in/damienlepage http://www.linkedin.com/in/damienlepage


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

Re: How to be lazy…

2012-02-24 Thread JuanManuel Gimeno Illa
This solution, I think, does not do more map first than needed, avoids 
computing len and pieces more than once, uses nthnext to avoid extra cost 
of drop and computes the example

(first (second (split-at-subsequence [1 2] (range


(defn split-at-subsequence [mark input]
(when-let [sequence (seq input)]
(let [len   (count mark)
  partition (partition-all len 1 sequence)
  step  (fn step [pieces]
(when pieces
(let [[fst rst]  (split-with #(not= mark %) 
pieces)
  tail   (lazy-seq (step (nthnext 
rst len)))]
(if (empty? fst)
tail
(list* (map first fst) tail)]
(step partition

It works, but some little modifications of it which I think should work, do 
not. For instance, if we move the lazy-seq just before the let of the inner 
function, stops working.

I need to work more on lazy sequences :-)

Juan Manuel

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Stuart Halloway
 On Fri, Feb 24, 2012 at 2:19 PM, Marco Abis marco.a...@gmail.com wrote:
 First: sorry, my reply was meant to be sent to you only, not the list
 Because it was described as a talk. That means the bulk of the
 actually meaningful content in it comes from someone's lips flapping.
 That can be rendered as text, easily. If there are slides, ... but
 I've already been over all of that.
 
 you are wrong,
 
 No, I am *not* wrong. A talk can be translated into text+embeds with
 very little or nothing being lost, almost by definition.
 
 It might be the case that the OP was wrong when he described the video
 in question as a talk, but that's a completely different matter.
 
 Regardless, I highly doubt that there's anywhere close to 60 minutes
 of video in there that couldn't be better presented in some other way.
 Most likely, it would be better as text and a few short video
 segments, the latter adding up to much less than 60 minutes in
 duration.
 
 watch the video
 
 No. A full hour is way, way too long for something analogous to a blog
 post or a mailing list message, and I have lots of other demands on my
 time.


Hi,

My real name is Stuart Halloway, and I have the ability to remove people from 
this mailing list. People who continue off-topic debates about the merits of 
video vs. text will be removed.

Let's get back to Clojure.

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Raju Bitter
Thanks for posting the link. I've been following Bret Victor's blog
and the stuff he has been doing for some time.

Bret has built some very impressive UIs using OpenLaszlo, and he is a
fan of the technology and the expressiveness of the LZX language for
building UIs. OpenLaszlo was created by bunch of smart folks and
Lispers, including Oliver Steele (worked for Apple on Dylan), Max
Carlson, Tucker Withington (worked for Symbolics and Harlequin,
implemented the GC for Dylan when Apple hired Harlequin to work on the
language), and Henry Minsky (Marvin Minsky's son).
http://osteele.com/
http://pt.withy.org/

Here's an old gestural zoom/pan demo Bret built with OpenLaszlo:
http://worrydream.com/GesturalZoomAndPan/

OpenLaszlo's LZX language uses a declarative approach to building UIs
and highly interactive applications (check this video of the Laszlo
Dashboard, which was created in 2002/2003 http://vimeo.com/14206607).
LZX is a mixture of XML tags + JavaScript, which initially was
compiled into SWF bytecode. In 2007 Laszlo added cross-compilation to
JavaScript (DHTML runtime) to the platform, and in 2009
cross-compilation to ActionScript 3 (which is then compiled into SWF
using the Flex SDK).

Here's a video of the LzPix application, the first OpenLaszlo app to
cross-compile to JavaScript
http://vimeo.com/32853986

My technology dream-team for client development would be ClojureScript
combined with OpenLaszlo (has a powerful view kernel with interesting
stuff like constraints, datapath mapping using xpath, simple yet
powerful animation APIs). Instead of using XML + JavaScript, I'd
prefer to use a more Clojure/Lisp like syntax to build UIs with
OpenLaszlo in combination with ClojureScript. There's a slight chance
that we can get the OpenLaszlo Lisp folks interested in integrating
OpenLaszlo with ClojureScript (they are all working at Nest Labs now),
and I'm sure that Bret Victor would love the combination as a tool for
building some awesome prototypes.

- Raju

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread David Nolen
Thanks for bringing the discussion back on track. That's a great list of
contexts  links.

David

On Fri, Feb 24, 2012 at 4:27 PM, Raju Bitter rajubit...@googlemail.comwrote:

 Thanks for posting the link. I've been following Bret Victor's blog
 and the stuff he has been doing for some time.

 Bret has built some very impressive UIs using OpenLaszlo, and he is a
 fan of the technology and the expressiveness of the LZX language for
 building UIs. OpenLaszlo was created by bunch of smart folks and
 Lispers, including Oliver Steele (worked for Apple on Dylan), Max
 Carlson, Tucker Withington (worked for Symbolics and Harlequin,
 implemented the GC for Dylan when Apple hired Harlequin to work on the
 language), and Henry Minsky (Marvin Minsky's son).
 http://osteele.com/
 http://pt.withy.org/

 Here's an old gestural zoom/pan demo Bret built with OpenLaszlo:
 http://worrydream.com/GesturalZoomAndPan/

 OpenLaszlo's LZX language uses a declarative approach to building UIs
 and highly interactive applications (check this video of the Laszlo
 Dashboard, which was created in 2002/2003 http://vimeo.com/14206607).
 LZX is a mixture of XML tags + JavaScript, which initially was
 compiled into SWF bytecode. In 2007 Laszlo added cross-compilation to
 JavaScript (DHTML runtime) to the platform, and in 2009
 cross-compilation to ActionScript 3 (which is then compiled into SWF
 using the Flex SDK).

 Here's a video of the LzPix application, the first OpenLaszlo app to
 cross-compile to JavaScript
 http://vimeo.com/32853986

 My technology dream-team for client development would be ClojureScript
 combined with OpenLaszlo (has a powerful view kernel with interesting
 stuff like constraints, datapath mapping using xpath, simple yet
 powerful animation APIs). Instead of using XML + JavaScript, I'd
 prefer to use a more Clojure/Lisp like syntax to build UIs with
 OpenLaszlo in combination with ClojureScript. There's a slight chance
 that we can get the OpenLaszlo Lisp folks interested in integrating
 OpenLaszlo with ClojureScript (they are all working at Nest Labs now),
 and I'm sure that Bret Victor would love the combination as a tool for
 building some awesome prototypes.

 - Raju

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread kovas boguta
That's a great talk, and a great basic principle: that creators need
an immediate connection to their creation.

I realized this has also been my side project for the last few months,
though mostly in hammock phase.

I think the foundational technology we need, as a community, is an
html5 repl. You type code into the browser, and can create output
that takes advantage of the host's capabilities - graphics, video, UI
etc.

The problem is a bit more multifaceted then just html though, as it
also involves UI state, persisting the sessions, how to share/reuse
the creations, and the general problem of UI description in the
context of clojurescript.

But where this gets you is this: a clojure interaction environment
based on web standards, rather than narrow dialects like elisp and
swing. So the lines between programming clojure, extending the clojure
programming environment, and deploying webapps goes away. It's
possible to see a line between this category of tool, and the demos in
the presentation.

If the game is tightly coupling data, code, and complex visual
representation, we have the building blocks to bust that game wide
open. It makes no sense to build on a platform other than the web, and
IMHO the big step there is to program clojure from the web, to produce
fully-active web content.

Another aspect of immediate connection, and one not mentioned in the
talk, is the social aspect. You make things, and show them to people,
get feedback, see things others have made. Now imagine if the clojure
community was creating in a system that is inherently web based. Many
interesting things could be built on that.


On Fri, Feb 24, 2012 at 4:27 PM, Raju Bitter rajubit...@googlemail.com wrote:
 Thanks for posting the link. I've been following Bret Victor's blog
 and the stuff he has been doing for some time.

 Bret has built some very impressive UIs using OpenLaszlo, and he is a
 fan of the technology and the expressiveness of the LZX language for
 building UIs. OpenLaszlo was created by bunch of smart folks and
 Lispers, including Oliver Steele (worked for Apple on Dylan), Max
 Carlson, Tucker Withington (worked for Symbolics and Harlequin,
 implemented the GC for Dylan when Apple hired Harlequin to work on the
 language), and Henry Minsky (Marvin Minsky's son).
 http://osteele.com/
 http://pt.withy.org/

 Here's an old gestural zoom/pan demo Bret built with OpenLaszlo:
 http://worrydream.com/GesturalZoomAndPan/

 OpenLaszlo's LZX language uses a declarative approach to building UIs
 and highly interactive applications (check this video of the Laszlo
 Dashboard, which was created in 2002/2003 http://vimeo.com/14206607).
 LZX is a mixture of XML tags + JavaScript, which initially was
 compiled into SWF bytecode. In 2007 Laszlo added cross-compilation to
 JavaScript (DHTML runtime) to the platform, and in 2009
 cross-compilation to ActionScript 3 (which is then compiled into SWF
 using the Flex SDK).

 Here's a video of the LzPix application, the first OpenLaszlo app to
 cross-compile to JavaScript
 http://vimeo.com/32853986

 My technology dream-team for client development would be ClojureScript
 combined with OpenLaszlo (has a powerful view kernel with interesting
 stuff like constraints, datapath mapping using xpath, simple yet
 powerful animation APIs). Instead of using XML + JavaScript, I'd
 prefer to use a more Clojure/Lisp like syntax to build UIs with
 OpenLaszlo in combination with ClojureScript. There's a slight chance
 that we can get the OpenLaszlo Lisp folks interested in integrating
 OpenLaszlo with ClojureScript (they are all working at Nest Labs now),
 and I'm sure that Bret Victor would love the combination as a tool for
 building some awesome prototypes.

 - Raju

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


Re: clojure.java.jmx 0.1 - problem getiing java.lang:type=Threading :AllThreadIds attribute

2012-02-24 Thread zoka
I had a look at the java.jmx code and worked out and tested s simple
fix:

diff --git a/src/main/clojure/clojure/java/jmx.clj b/src/main/clojure/
clojure/java/jmx.clj
index 128e516..3d291a3 100644
--- a/src/main/clojure/clojure/java/jmx.clj
+++ b/src/main/clojure/clojure/java/jmx.clj
@@ -203,9 +203,16 @@
(into-array (map name attrs)
 (.getAttribute *connection* (as-object-name n) (name attrs

+(defn- array-chk
+  Check if v is Java array and if so, convert it to vector
+  [v]
+  (if (.isArray (class v))
+(vec v)
+v))
+
 (def ^{:doc Read one or more mbean properties.}
   read
-  (comp objects-data raw-read))
+  (comp array-chk objects-data raw-read))

user= (require '[clojure.java.jmx :as jmx])
nil
user= (jmx/read  java.lang:type=Threading :AllThreadIds)
[11 10 6 3 2 1]

This also makes sure that values returned by read and mbean functions
are immutable.


On Feb 24, 3:32 am, Nick Bailey nickmbai...@gmail.com wrote:
 I'm not sure that java.jmx should be attempting to do any conversion
 of the values returned over jmx. I think it should be the
 application's responsibility to convert types appropriately for how
 they are needed.







 On Wed, Feb 22, 2012 at 7:47 PM, zoka ztomi...@gmail.com wrote:
  I was trying to convert result of JMX attributes query to JSON, and
  encountered  problem while reading one particular attribute value of
  java.lang:type=Threading. Here is the REPL transcript:

  demo.server= (require '[clojure.java.jmx :as jmx])
  nil
  demo.server= (jmx/read  java.lang:type=Threading :AllThreadIds)
  #long[] [J@1bd97d0d
  demo.server=

  This seems to be Java long array reference,

  The jmx/mbean function that returns all attribute name as keywords
  associated with their values carries this value through. Attempt to
  convert such map to JSON string  causes exception, since in this case
  a clojure vector of longs would be expected instead of Java array.

  This particular piece information (list of application ThreadIs) is
  not of particular interest to me anyway, so it is easy just to remove
  the offending map entry as a workaround.

  I have noticed some recent activity in clojure.java.jmx github repo,
  so I thought it would be appropriate to rise this issue, since it may
  be affecting some other attributes as well.

  Regards
  Zoka

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


Re: [ANN] Luke VanderHart's Clojure Zippers Conj video up

2012-02-24 Thread Howard Lewis Ship
I've finally signed and scanned my video release, for my short talk on Cascade.

http://dl.dropbox.com/u/39927208/conj-video-release.pdf

On Mon, Dec 27, 2010 at 10:08 AM, Alan Dipert a...@dipert.org wrote:
 Hi everyone,
 We've just released the next Conj video, Luke VanderHart's talk on
 Clojure Zippers: http://clojure.blip.tv/file/4503162/

 I've also just blogged over at clojure.com on what our video release
 plan is, along with links to videos released so far:
 http://clojure.com/blog/2010/12/27/conj-videos.html

 The source for all videos Clojure is still http://clojure.blip.tv/,
 and if you'd like to know the moment the next video is available, be
 sure to follow clojure_conj on Twitter:
 http://twitter.com/clojure_conj

 Thank you, and Happy Holidays,
 Alan and the Clojure/core team

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



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.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


clj-blueprints

2012-02-24 Thread Eduardo Julian
I'd like to present you with an small library for working with
Blueprints-enabled graph databases in Clojure:
https://github.com/eduardoejp/clj-blueprints

Have fun!

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Stefan Kamphausen
Hi,

this video showed up on my G+ stream about a week ago and it was /fun/ to 
watch.

I think most of the people around here will be more intrigued by the first 
half, which has a focus on programming.

Side-note: this is one of the (few) video presentations that just can't be 
translated to text.  Wait for the slider in the browser game...

However, I digress...

Am Freitag, 24. Februar 2012 21:34:54 UTC+1 schrieb lpetit:
 

 Hello Damien, I had already watched the first half of the talk. 
 I found the live demonstrations rather impressive, indeed. I've since 
 wondered how this could be generalized, 


I may be wrong, but I as far as I understand the message of the video it is 
explicitly not about generalization.  It's more about finding a niche of 
programming where you can make the experience of the person doing things 
more direct.  Thus, I'd rather consider the particular situation of a 
person doing UI-stuff with seesaw or doing web-stuff with ring and friends 
or whatever, the direct thing.  I think Overtone does a lot right from this 
point of view.

But then again, the niche may be programmers writing pure functions and the 
example of the video may apply.

After all this has been said, of course I may have misunderstood your 
remark about generalization, Laurent.

Kind regards,
Stefan

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

Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Chas Emerick
That's a nice summary, and is part of what I'm hoping to enable with nREPL.[1]  
I started with it trying to provide a tool-agnostic REPL backend, but I quickly 
wanted to get past the rigid text orientation of that medium.  Yes, Clojure 
forms are always read as text, and that's the dominant medium of interaction 
used by programmers everywhere, but it doesn't (and maybe shouldn't) be that 
way.  Certainly, the leverage provided by well-executed, relevant, 
perhaps-interactive visualizations is becoming widely appreciated; I don't see 
why we should allow our programming practice to be segregated in a text ghetto 
when different mediums are better — or necessary.

Anyway, nREPL has developed to the point where middlewares can be written to 
easily offer richer representations of data within the REPL.  An example of my 
earliest (primitive!) experiments around this are available here[2].  Images 
and other data flowing through a REPL isn't a _huge_ deal, except that:

* nREPL is tool-agnostic; reply (and therefore Leiningen v2) or vimclojure or 
jark or textmate or sublime text can elect to receive those other 
representations, and present them to the user however is appropriate

* nREPL is transport-agnostic; the default socket transport (bencode[3] with 
some particular semantics) is very lightweight, and can receive or transmit 
binary data efficiently (a distinct advantage compared to shipping textual 
encodings of such data in e.g. s-expressions).

A proof of concept of a tty transport is included in nREPL (so you could 
connect to an nREPL backend using something as meager as telnet), and I have a 
sketch of an nREPL ring handler that I'll get out on github soon.  This should 
allow you to easily drop an nREPL endpoint into any ring app, connect to it 
with any HTTP or nREPL client, and do anything you'd like to do in a REPL 
without tunneling, mucking around with ssh tunnels, and taking advantage of all 
existing webapp security regime you have in place.  And, if you have the right 
middlewares in place and a suitably-capable client, rich representations of 
REPL data and rich interactions with the same should be within arm's reach.

I have less of a vision for the HTML5 side of things. I'm certain a killer 
in-browser nREPL client could be put together to take advantage of all of the 
above, whether it's connecting to an HTTP nREPL endpoint or a (web)socket 
transport using nREPL's wire protocol, but I'm personally more interested on 
thick clients (perhaps embedding webviews as necessary!) for various reasons.

FYI, for anyone working on tooling to help support things like this, I'd invite 
you to join the clojure-tools group I created recently:

http://groups.google.com/group/clojure-tools/browse_thread/thread/48ff47ab5d7ca2c?hl=en

Cheers,

- Chas

[1] http://github.com/clojure/tools.nrepl
[2] 
http://cemerick.com/2011/10/26/enabling-richer-interactions-in-the-clojure-repl/
[3] It turns out that bencode and the way nREPL uses it seems similar to but 
much simpler than Google's SPDY protocol.  

On Feb 24, 2012, at 5:33 PM, kovas boguta wrote:

 That's a great talk, and a great basic principle: that creators need
 an immediate connection to their creation.
 
 I realized this has also been my side project for the last few months,
 though mostly in hammock phase.
 
 I think the foundational technology we need, as a community, is an
 html5 repl. You type code into the browser, and can create output
 that takes advantage of the host's capabilities - graphics, video, UI
 etc.
 
 The problem is a bit more multifaceted then just html though, as it
 also involves UI state, persisting the sessions, how to share/reuse
 the creations, and the general problem of UI description in the
 context of clojurescript.
 
 But where this gets you is this: a clojure interaction environment
 based on web standards, rather than narrow dialects like elisp and
 swing. So the lines between programming clojure, extending the clojure
 programming environment, and deploying webapps goes away. It's
 possible to see a line between this category of tool, and the demos in
 the presentation.
 
 If the game is tightly coupling data, code, and complex visual
 representation, we have the building blocks to bust that game wide
 open. It makes no sense to build on a platform other than the web, and
 IMHO the big step there is to program clojure from the web, to produce
 fully-active web content.
 
 Another aspect of immediate connection, and one not mentioned in the
 talk, is the social aspect. You make things, and show them to people,
 get feedback, see things others have made. Now imagine if the clojure
 community was creating in a system that is inherently web based. Many
 interesting things could be built on that.
 
 
 On Fri, Feb 24, 2012 at 4:27 PM, Raju Bitter rajubit...@googlemail.com 
 wrote:
 Thanks for posting the link. I've been following Bret Victor's blog
 and the stuff he has been doing for some time.
 
 Bret has built 

Re: lazyness

2012-02-24 Thread Mark Rathwell
Try this (you need to wrap the return val of helper in lazy-seq also):

(defn pair-sequences-by
  ([seq-1 seq-2 f1 f2]
 s1 and s2 are guaranteed to be strictly monotonically increasing
whith respect to f1 and f2 as keys respectively.
 The return value is pairs of elements e1 from s1 and e2 from s2 such
that (= (f1 e1) (f2 e2)) is true
 (let [helper (fn helper [s1 s2]
(loop [[x  xs :as wx] s1 [y  ys :as wy] s2]
  (when (and x y)
   (let [[xk yk] (map #(%1 %2) [f1 f2] [x y])]
 (let [cval (compare xk yk)]
   (cond
( cval 0) (recur xs wy)
(= cval 0) (cons [x y] (lazy-seq (helper xs ys)))
( cval 0) (recur wx ys)))]
   (lazy-seq (helper seq-1 seq-2
  ([seq-1 seq-2 f] (pair-sequences-by seq-1 seq-2 f f)))

On Fri, Feb 24, 2012 at 11:36 PM, Sunil S Nandihalli
sunil.nandiha...@gmail.com wrote:
 Hi Everybody,
  Can somebody comment if the following piece of code is truely lazy?




 (defn pair-sequences-by



   ([seq-1 seq-2 f1 f2]



  s1 and s2 are guaranteed to be strictly monotonically increasing whith
 respect to f1 and f2 as keys respectively.



  The return value is pairs of elements e1 from s1 and e2 from s2 such that
 (= (f1 e1) (f2 e2)) is true



  (let [helper (fn helper [s1 s2]



 (loop [[x  xs :as wx] s1 [y  ys :as wy] s2]



   (when (and x y)



(let [[xk yk] (map #(%1 %2) [f1 f2] [x y])]



  (let [cval (compare xk yk)]



(cond



 ( cval 0) (recur xs wy)



 (= cval 0) (cons [x y] (helper xs ys))



 ( cval 0) (recur wx ys)))]



(lazy-seq (helper seq-1 seq-2



   ([seq-1 seq-2 f] (pair-sequences-by seq-1 seq-2 f f)))






 https://gist.github.com/e9f6c0ad9bbe535d2d54






 I am running out of ram when I use this.. so any help would be greatly
 appreciated.



 Thanks,
 Sunil.

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


Re: Bret Victor - Inventing on Principle

2012-02-24 Thread Sam Ritchie
Why listen to music when you could read lyrics? Watching a well-performed
talk is about making an emotional connection with the storyteller. Go read
the I have a dream speech, then watch the video. They're both powerful,
but the performance trumps the script.

(Please don't troll me on the example, I'm not making a comparison between
speakers :)

On Fri, Feb 24, 2012 at 11:12 AM, Cedric Greevey cgree...@gmail.com wrote:

 On Fri, Feb 24, 2012 at 2:06 PM, gaz jones gareth.e.jo...@gmail.com
 wrote:
  Are you Ken Wesson with a new account?

 Who?

 Wait. Surely you don't think that it's not possible for more than one
 person to prefer text to video as a way of disseminating verbal
 information over the internet, given all of text's advantages in such
 areas as bandwidth, cost, and tool support?

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




-- 
Sam Ritchie, Twitter Inc
703.662.1337
@sritchie09

(Too brief? Here's why! http://emailcharter.org)

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

use require of repl-created namespace throws exception (?)

2012-02-24 Thread Frank Siebenlist
If you create a namespace with associated vars interactively in the repl, and 
subsequently try to use that functionality in other namspaces with 
clojure.core/use, an exception is thrown:

FileNotFoundException Could not locate cljsh/docs__init.class or 
cljsh/docs.clj on classpath:   clojure.lang.RT.load (RT.java:430)

I can understand that no file can be located as there is none…

clojure.core/require throws the same exception (as it seems to use the same 
clojure.core/load-libs under the cover).

Stand-alone, clojure.core/refer does work, however.

If I read the docs for clojure.core/require, it is clear that it has to do with 
loading of code in files.

However, from a usability point of view, wouldn't it make more sense to let 
clojure.core/require just return nil and do nothing if the namespace is already 
loaded (unless the :reload option is give). Not sure why require actually 
checks without any :reload directive… if the namespace is already loaded, and 
the associated lib-files can be found, it's not supposed to do anything anyway, 
if I understand it well.

Or maybe I miss some of the subtleties between a lib and a namespace as 
concepts and implementations (?).

-Confusingly yours, FrankS.

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


Re: lazyness

2012-02-24 Thread Sunil S Nandihalli
Thanks Mark,
 I think that worked!!
Sunil.

On Sat, Feb 25, 2012 at 10:54 AM, Mark Rathwell mark.rathw...@gmail.comwrote:

 Try this (you need to wrap the return val of helper in lazy-seq also):

 (defn pair-sequences-by
  ([seq-1 seq-2 f1 f2]
 s1 and s2 are guaranteed to be strictly monotonically increasing
 whith respect to f1 and f2 as keys respectively.
  The return value is pairs of elements e1 from s1 and e2 from s2 such
 that (= (f1 e1) (f2 e2)) is true
 (let [helper (fn helper [s1 s2]
(loop [[x  xs :as wx] s1 [y  ys :as wy] s2]
  (when (and x y)
   (let [[xk yk] (map #(%1 %2) [f1 f2] [x y])]
 (let [cval (compare xk yk)]
   (cond
( cval 0) (recur xs wy)
 (= cval 0) (cons [x y] (lazy-seq (helper xs
 ys)))
 ( cval 0) (recur wx ys)))]
   (lazy-seq (helper seq-1 seq-2
  ([seq-1 seq-2 f] (pair-sequences-by seq-1 seq-2 f f)))

 On Fri, Feb 24, 2012 at 11:36 PM, Sunil S Nandihalli
 sunil.nandiha...@gmail.com wrote:
  Hi Everybody,
   Can somebody comment if the following piece of code is truely lazy?
 
 
 
 
  (defn pair-sequences-by
 
 
 
([seq-1 seq-2 f1 f2]
 
 
 
   s1 and s2 are guaranteed to be strictly monotonically increasing
 whith
  respect to f1 and f2 as keys respectively.
 
 
 
   The return value is pairs of elements e1 from s1 and e2 from s2 such
 that
  (= (f1 e1) (f2 e2)) is true
 
 
 
   (let [helper (fn helper [s1 s2]
 
 
 
  (loop [[x  xs :as wx] s1 [y  ys :as wy] s2]
 
 
 
(when (and x y)
 
 
 
 (let [[xk yk] (map #(%1 %2) [f1 f2] [x y])]
 
 
 
   (let [cval (compare xk yk)]
 
 
 
 (cond
 
 
 
  ( cval 0) (recur xs wy)
 
 
 
  (= cval 0) (cons [x y] (helper xs ys))
 
 
 
  ( cval 0) (recur wx ys)))]
 
 
 
 (lazy-seq (helper seq-1 seq-2
 
 
 
([seq-1 seq-2 f] (pair-sequences-by seq-1 seq-2 f f)))
 
 
 
 
 
 
  https://gist.github.com/e9f6c0ad9bbe535d2d54
 
 
 
 
 
 
  I am running out of ram when I use this.. so any help would be greatly
  appreciated.
 
 
 
  Thanks,
  Sunil.
 
  --
  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 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 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