Lamina and channels-driven concurrency with Clojure

2012-07-23 Thread Alexey Kachayev
Hi, everybody! Rob Pike gave an interesting talk on latest Google I/O "Go Concurrency Patterns" with excellent examples of how to write simple but powerful concurrency code using goroutines and channels (his talk on youtube: http://www.youtube.com/watch?v=f6kdp27TYZs&feature=youtu.be). My idea was

Re: Clojurians in the midlands (UK)

2012-07-23 Thread Colin Yates
I was musing about starting a regular meet-up, but it doesn't sound like there are enough people to justify it. On Friday, 20 July 2012 13:03:03 UTC+1, Jim foo.bar wrote: > > There are a few in Manchester (including me) Do you have anything > particular in mind? > > Jim > > On Wed, Jul 18, 2

Re: is their a Clojure framework for handling form validation?

2012-07-23 Thread Pierre-Henry Perret
See [1]. This is a web framework which has a form validation included. [1] http://www.clojurescriptone.com Le lundi 23 juillet 2012 01:46:52 UTC+2, larry google groups a écrit : > > Since 2000 I've been doing web development, first with PHP and then with > Ruby On Rails. In the world of PHP, t

Re: Any downside of record compared to map

2012-07-23 Thread Bronsa
there's also the reader literal user=> (defrecord foo [bar baz]) user.foo user=> #user.foo{:baz 1 :bar 2} #user.foo{:bar 2, :baz 1} 2012/7/23 Takahiro Hozumi > Baishampayan > I didn't know `map->Foo`. Thank you for the infomation! > > > On Monday, July 23, 2012 2:11:45 PM UTC+9, Baishampayan G

Re: Any downside of record compared to map

2012-07-23 Thread Lee Spector
Considering that maps do have upsides compared to records in some cases (as indicated, e.g., by Chas's flowchart), and that struct-maps add a couple of handy features in the context of some uses of maps, can anybody say why struct-maps are deprecated? -Lee On Jul 23, 2012, at 1:07 AM, Takah

XML parsing with namespace prefixes

2012-07-23 Thread Marcel Möhring
Hi, I am trying to parse an xpdl file. The problem for me is, that every tag is prefixed with xpdl namespace. The lookup from clojure.data.zip.xml always returns nil. (the same code works for non-prefixed XMLs) zipper: [{:tag :xpdl:Package, :attrs {:xmlns:xpdl "http://www.wfmc.org/2008/XP

contrib change suggestion, and volunteering

2012-07-23 Thread pjm
Hello, everyone. I am a newbie, and have been trying to follow along on Clojure Notes , but it has been difficult due to the major change that in the way clojure.contrib works recently. I think I have a workaround to clojure.contrib.server-socket not b

Re: is their a Clojure framework for handling form validation?

2012-07-23 Thread Paweł Rozynek
noir framework got something for it: http://webnoir.org/autodoc/1.3.0/noir.validation.html never saw standalone lib just for that purpose tho. regards PR -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@g

Re: Clojurians in the midlands (UK)

2012-07-23 Thread Christian Bryan
Just started Clojure and I'm from Walsall/Black Country. I agree, its going be difficult finding fellow Clojurians around here. Christian On Monday, 23 July 2012 09:21:49 UTC+1, Colin Yates wrote: > I was musing about starting a regular meet-up, but it doesn't sound like > there are enough peo

Re: Clojurians in the midlands (UK)

2012-07-23 Thread David Powell
On Tue, Jul 17, 2012 at 9:06 AM, Colin Yates wrote: > I know there are a few in London, but are there any around the midlands in > the UK (Coventry, Leicester, Birmingham, Derby etc.)? I'm from Staffordshire. -- Dave -- You received this message because you are subscribed to the Google Grou

Re: is their a Clojure framework for handling form validation?

2012-07-23 Thread Michael Klishin
Paweł Rozynek: > never saw standalone lib just for that purpose tho. https://github.com/michaelklishin/validateur Validateur is not specific to Web forms, works for any kind of data validation and very extensible. MK mich...@defprotocol.org signature.asc Description: Message signed with Op

Re: contrib change suggestion, and volunteering

2012-07-23 Thread Softaddicts
Hi Peter, Contrib has been sliced in separate modules since version 1.3. The tutorial you are referring to is based on 1.2 What can be expected from outdated documentation ? Spontaneous update ? :) Did you had a look at this to see if you can find were the stuff you need was migrated (if still s

Re: reduction to tail recursion

2012-07-23 Thread Mimmo Cosenza
hi Merek and thanks for the link. But it does not answer my question. I was looking for a demonstration of the reducibility of (not tail) recursion to tail recursion. Or there is a demonstration of that, or nobody could say that a (not tail) recursion definition is always reducible to a tail re

Re: reduction to tail recursion

2012-07-23 Thread nicolas.o...@gmail.com
Yes. For example, you can have a look at CPS transformation. If you want tail recursion and not tail calls, you can add trampolining to the mix. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroup

Re: Casting SPELs in Clojure

2012-07-23 Thread Joe Hughes
All, I figured it out. Still trying to get Functional Programming ideas in my head. Regards, Joe On Friday, June 29, 2012 11:11:56 AM UTC-5, Joe Hughes wrote: > > All, > > I've been playing with Clojure and found this website, > http://www.lisperati.com/clojure-spels/casting.html. Typed

Re: Casting SPELs in Clojure

2012-07-23 Thread Denis Labaye
Hi, On Mon, Jul 23, 2012 at 5:38 PM, Joe Hughes wrote: > All, > > I figured it out. Still trying to get Functional Programming ideas in > my head. > The macro defspel is not functional programming, it's dark Lisp's macro Voodoo. I would not advise starting Clojure with macros, you should

How do you determine terminal/console width in `lein repl`?

2012-07-23 Thread Gabriel Horner
Hi, For a clojar I'm writing , I'd like to know a user's terminal width so I can resize output appropriately. All the following techniques, which work fine in a ruby repl, don't work in leiningen2: $ lein repl user=> (System/getenv "COLUMNS") nil user=> (clo

Re: Casting SPELs in Clojure

2012-07-23 Thread Joe Hughes
Denis: Thanks for the link. Looks interesting. Between it and the Euler Project, I should continue learning Clojure. Regards, Joe On Monday, July 23, 2012 10:53:56 AM UTC-5, Denis Labaye wrote: > > Hi, > > On Mon, Jul 23, 2012 at 5:38 PM, Joe Hughes wrote: > >> All, >> >> I figured i

Re: Casting SPELs in Clojure

2012-07-23 Thread Denis Labaye
On Mon, Jul 23, 2012 at 6:11 PM, Joe Hughes wrote: > Denis: > >Thanks for the link. Looks interesting. Between it and the Euler > Project, I should continue learning Clojure. > Euler is also great, but 4clojure is specifically oriented towards Clojure, and the creators of 4clojure really t

Re: contrib change suggestion, and volunteering

2012-07-23 Thread Sean Corfield
On Mon, Jul 23, 2012 at 12:06 AM, pjm wrote: > Hello, everyone. I am a newbie, and have been trying to follow along on > Clojure Notes, but it has been difficult due to the major change that in the > way clojure.contrib works recently. Yup, there are still a lot of outdated tutorials and material

Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Hello. I did a naive simple benchmark of Haskell and Scala recently and now i decided to add Clojure to the picture. Here is the idea http://blog.worldcognition.com/2012/06/folding-tree-to-list-benchmark-scala-vs.html So, I wrote the following functions: (defn generate-tree [[h & t :as coll]]

Re: Any downside of record compared to map

2012-07-23 Thread Ben Mabey
On 7/22/12 5:42 PM, Warren Lynn wrote: I plan to change all my major data structures to records instead of plain maps. Since record has everything a map provides, I figure there won't be any harm. But is that really so? Would appreciate the opinions from people who know better. Another downs

Re: Little becnhmark (need insight)

2012-07-23 Thread Sergey Didenko
Hi, lazy seqs are slow for number crunching, you can try to remove them. Then you can check that you make (set! *warn-on-reflection* true). And that your code does not have the warnings. Then may be use native (Java) data structures or even arrays. Then you can change defn for definline for sen

Re: Little becnhmark (need insight)

2012-07-23 Thread Mark Engelberg
I would guess you'd get closer to Scala's perf if you use records to represent your trees, rather than vectors. -- 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 memb

Re: Any downside of record compared to map

2012-07-23 Thread Aravindh Johendran
On Monday, July 23, 2012 8:20:40 AM UTC-4, Lee wrote: > > > Considering that maps do have upsides compared to records in some cases > (as indicated, e.g., by Chas's flowchart), and that struct-maps add a > couple of handy features in the context of some uses of maps, can anybody > say why stru

Re: Any downside of record compared to map

2012-07-23 Thread Phil Hagelberg
On Mon, Jul 23, 2012 at 11:59 AM, Ben Mabey wrote: > Another downside I have ran into that hasn't been mentioned is with (Java) > serialization. If you are using records and defining protocols inline you > can serialize the record just fine, however if you change the implementation > then all of

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Just tried it out: results are a little worse comparing to vectors (1.75s vs 1.68s). On Monday, July 23, 2012 10:56:01 PM UTC+3, puzzler wrote: > > I would guess you'd get closer to Scala's perf if you use records to > represent your trees, rather than vectors. > -- You received this message b

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Thanks. But I don't do any number crunching here - just a huge structure creation in memory. I can't get why removing the 'lazy-seq' wrapper from the second 'concat' argument make things 10x times slower. On Monday, July 23, 2012 10:40:51 PM UTC+3, Sergey Didenko wrote: > > Hi, > > lazy seqs ar

Re: Little becnhmark (need insight)

2012-07-23 Thread Timothy Baldridge
> Thanks. But I don't do any number crunching here - just a huge structure > creation in memory. I can't get why removing the 'lazy-seq' wrapper from the > second 'concat' argument make things 10x times slower. Lazy-seqs require the allocation of a LazySeq object. Due to the lazy nature of this st

Re: Little becnhmark (need insight)

2012-07-23 Thread David Nolen
On Mon, Jul 23, 2012 at 2:58 PM, Alexander Semenov wrote: > > (do (time (doall (to-list tree))) :done) > "Elapsed time: 19716.222 msecs" > > Why is this so? Both results are kind of disappointing for me cause Scala > gives me ~270ms time using functional code and 5x faster using the mutable > one

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
I see. Just removed the lazyness and got ~800ms. (defn generate-tree [[h & t :as coll]] (if (seq coll) (let [lr (generate-tree t)] [h lr lr]) nil)) (defn to-list [[v l r :as node]] (if-not (nil? node) (into (to-list l) (conj (to-list r) v)) [])) On Monday, July 23,

Re: Little becnhmark (need insight)

2012-07-23 Thread Softaddicts
Did you try flatten ? Luc P. > Hello. > > I did a naive simple benchmark of Haskell and Scala recently and now i > decided to add Clojure to the picture. Here is the idea > http://blog.worldcognition.com/2012/06/folding-tree-to-list-benchmark-scala-vs.html > > So, I wrote the following funct

Re: is their a Clojure framework for handling form validation?

2012-07-23 Thread gaz jones
https://github.com/mikejones/mississippi again, not specific to web forms. works on clojure maps and is extensible. On Sun, Jul 22, 2012 at 6:46 PM, larry google groups wrote: > Since 2000 I've been doing web development, first with PHP and then with > Ruby On Rails. In the world of PHP, there a

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Yes, but these are implementation details - API is still functional and side-effects free. On Monday, July 23, 2012 11:23:32 PM UTC+3, David Nolen wrote: > > On Mon, Jul 23, 2012 at 2:58 PM, Alexander Semenov wrote: > > > > (do (time (doall (to-list tree))) :done) > > "Elapsed time: 19716.222

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
It died with out of memory with a half a minute delay. On Monday, July 23, 2012 11:30:19 PM UTC+3, Luc wrote: > > Did you try flatten ? > > Luc P. > > > > Hello. > > > > I did a naive simple benchmark of Haskell and Scala recently and now i > > decided to add Clojure to the picture. Here is t

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
Hi, With the new version without laziness, what exact test do you pass ? Is it still (do (time (doall (to-list tree))) :done) ? Because the doall adds an unfair re-traversal of the list, I think 2012/7/23 Alexander Semenov > I see. Just removed the lazyness and got ~800ms. > > > (defn generate

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Oh yes, you're absolutely right. Now its 570 ms (just removed the 'doall'). On Monday, July 23, 2012 11:34:40 PM UTC+3, lpetit wrote: > > Hi, > With the new version without laziness, what exact test do you pass ? > > Is it still (do (time (doall (to-list tree))) :done) ? > > Because the doall add

Re: Little becnhmark (need insight)

2012-07-23 Thread David Nolen
On Mon, Jul 23, 2012 at 4:30 PM, Alexander Semenov wrote: > Yes, but these are implementation details - API is still functional and > side-effects free. So your benchmark is just timing implementation details. I'm sure you can get get identical numbers to Scala / Haskell if you provide your own

Re: Any downside of record compared to map

2012-07-23 Thread Lee Spector
On Jul 23, 2012, at 4:06 PM, Aravindh Johendran wrote: > Are struct-maps really deprecated? I don't see a deprecation warning anywhere > (clojure website, source, api, etc.). All I see is the following line in > clojure website. > ---> Note: Most uses of StructMaps would now be better served by

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
To some degree. Neither Clojure nor Haskell won't beat direct mutable code in Scala which results in 65ms on a machine 2x slower than my current. On Monday, July 23, 2012 11:44:18 PM UTC+3, David Nolen wrote: > So your benchmark is just timing implementation details. > > I'm sure you can get ge

Re: Little becnhmark (need insight)

2012-07-23 Thread David Nolen
On Mon, Jul 23, 2012 at 4:52 PM, Alexander Semenov wrote: > To some degree. Neither Clojure nor Haskell won't beat direct mutable code > in Scala which results in 65ms on a machine 2x slower than my current. Direct mutable code can be written with little difficulty in Clojure. It's just discourag

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
2012/7/23 Alexander Semenov > Oh yes, you're absolutely right. Now its 570 ms (just removed the 'doall'). > > Does the timing stabilize to a lesser value if you execute it multiple times (as they did in the scala test) : (dotimes [ _ 10] (time (to-list tree)) :done) ? > > On Monday, July 23,

Re: Little becnhmark (need insight)

2012-07-23 Thread Mark Engelberg
Here's what my code looks like, using records and removing pattern matching: (defrecord Tree [h l r]) (defn generate-tree [c] (when-let [s (seq c)] (let [lr (generate-tree (rest s))] (Tree. (first s) lr lr (defn to-list [t] (if t (into (conj (to-list (:l t)) (:h t

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
No, the results are pretty the same (+-20ms). In fact I tried using https://github.com/hugoduncan/criterium but it dies with 'out of memory' (:reduce-with option doesn't help), so I gave up. On Monday, July 23, 2012 11:54:28 PM UTC+3, lpetit wrote: > > Does the timing stabilize to a lesser valu

Re: Little becnhmark (need insight)

2012-07-23 Thread Mark Engelberg
Don't forget to use the -server flag. Makes a big difference in the perf of Clojure code. -- 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 - p

Re: Any downside of record compared to map

2012-07-23 Thread Warren Lynn
Thank everybody for the discussion. I am now aware of some pitfalls in using defrecord. For me, I like to have type information associated with my data. I still prefer defrecord over map in general, but I will proceed with more caution. I think some pitfalls here are not due to the greatness o

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Yes, I tried pretty the same and it gives same timings as without records. BTW, I noticed that destructuring brings some little overhead (~50ms). On Monday, July 23, 2012 11:59:34 PM UTC+3, puzzler wrote: > > Here's what my code looks like, using records and removing pattern > matching: > > (def

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
Hm, currently I run those functions from inside SLIME repl session in emacs and I have no idea whereas it starts clojure with that flag. Let me see... On Tuesday, July 24, 2012 12:00:23 AM UTC+3, puzzler wrote: > > Don't forget to use the -server flag. Makes a big difference in the perf > of Cl

Re: Little becnhmark (need insight)

2012-07-23 Thread David Nolen
(deftype Tree [n l r] clojure.lang.Indexed (nth [this idx] (nth this idx nil)) (nth [_ idx not-found] (case idx 0 n 1 l 2 r not-found))) (defn generate-tree [[h & t :as coll]] (when (seq coll) (let [lr (generate-tree t)] (Tree. h lr lr (defn to-list

Re: Little becnhmark (need insight)

2012-07-23 Thread David Nolen
(defn to-list ([node] (persistent! (to-list node (transient [] ([[v l r :as node] acc] (if-not (nil? node) (let [lacc (to-list l acc) vacc (conj! lacc v) racc (to-list r vacc)] racc) acc))) There was a mistake in my to-list. Timings ha

Re: Little becnhmark (need insight)

2012-07-23 Thread Alexander Semenov
And ~44ms on mine. Impressive! Will study your code tomorrow, thanks. On Tuesday, July 24, 2012 12:07:59 AM UTC+3, David Nolen wrote: > > (deftype Tree [n l r] > clojure.lang.Indexed > (nth [this idx] > (nth this idx nil)) > (nth [_ idx not-found] > (case idx > 0 n >

Re: [ANN] jenkins-leiningen

2012-07-23 Thread Phil Hagelberg
On Wed, Jul 18, 2012 at 7:23 AM, Pierre-Yves Ritschard wrote: > I wanted this for a while so here goes: > https://github.com/pyr/jenkins-leiningen. > It is very simplistic and inspired from the sbt one. This is great. Could you add it to the Leiningen wiki? https://github.com/technomancy/leinin

Re: Little becnhmark (need insight)

2012-07-23 Thread Mark Engelberg
As David was posting his code, I was wrapping up my own experimentation with how transients apply here. Mine is similar, but doesn't use pattern matching -- seems a bit faster: (defrecord Tree [h l r]) (defn generate-tree [c] (when-let [s (seq c)] (let [lr (generate-tree (rest s))]

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
2012/7/23 Mark Engelberg > As David was posting his code, I was wrapping up my own experimentation > with how transients apply here. Mine is similar, but doesn't use pattern > matching -- seems a bit faster: > > > (defrecord Tree [h l r]) > > (defn generate-tree [c] > (when-let [s (seq c)] >

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
Oh, and finally, note that even without transients, you get 6x better perf by not calling into directly: => (defrecord Tree [h l r]) (defn generate-tree [c] (when-let [s (seq c)] (let [lr (generate-tree (rest s))] (Tree. (first s) lr lr (defn to-list ([t]

Logger conflicts

2012-07-23 Thread Eric in San Diego
I'm in the process of upgrading some oldish code, and I'm encountering some compatibility problems with the loggers required by various libraries. See the *appendix* below for my project.clj, which loads a number of libraries and to which I've recently added statements like this: [com.

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
And I guess it is so because into, being called numerous times, keeps transforming bigger and bigger vectors into transient vectors, and back to persistent vectors, etc. 2012/7/24 Laurent PETIT > Oh, and finally, note that even without transients, you get 6x better perf > by not calling into dir

Re: Little becnhmark (need insight)

2012-07-23 Thread Laurent PETIT
2012/7/24 Laurent PETIT > And I guess it is so because into, being called numerous times, keeps > transforming bigger and bigger vectors into transient vectors, and back to > persistent vectors, etc. Answering to self: I was wrong, problem does not seem to be with internal use of transients ins

core.match "invert" match

2012-07-23 Thread Simone Mosciatti
Hi everybody, I was looking if it is possible to invert the match macro, an example worth more than 1000 words. (def x (match [a b] [true true] 0.5 [false true] 0.6 [true false] 0.4 [false false] 0.8)) (max x) => [false false] (filter odd? x) => [true true] It is possible ? I am de

Re: core.match "invert" match

2012-07-23 Thread David Nolen
On Mon, Jul 23, 2012 at 6:42 PM, Simone Mosciatti wrote: > Hi everybody, > I was looking if it is possible to invert the match macro, an example worth > more than 1000 words. > > (def x (match [a b] >[true true] 0.5 >[false true] 0.6 >[true false] 0.4 >[false false] 0.8)) > > (max

Re: Clojurians in Pune

2012-07-23 Thread Aniruddh Joshi
+1 On Tuesday, 17 July 2012 15:45:39 UTC+5:30, Murtaza Husain wrote: > > Hi, > > Anyone interested in organizing a clojure dojo in Pune ? > > Thanks, > Murtaza > On Tuesday, 17 July 2012 15:45:39 UTC+5:30, Murtaza Husain wrote: > > Hi, > > Anyone interested in organizing a clojure dojo in Pune ?

Re: is their a Clojure framework for handling form validation?

2012-07-23 Thread Robert Marianski
Form validation: https://github.com/joodie/clj-decline https://github.com/joodie/pretzel Form generation: https://github.com/joodie/flutter Robert On Mon, Jul 23, 2012 at 03:30:21PM -0500, gaz jones wrote: > https://github.com/mikejones/mississippi > > again, not specific to web forms. works

Re: Any downside of record compared to map

2012-07-23 Thread Sean Corfield
On Mon, Jul 23, 2012 at 1:47 PM, Lee Spector wrote: > On Jul 23, 2012, at 4:06 PM, Aravindh Johendran wrote: >> Are struct-maps really deprecated? It's a good question. Christophe Grand thinks they're "half deprecated" here: http://www.adrianmouat.com/bit-bucket/2011/02/common-lisp-clojure-and-e

how can "a" become *agent* in this code?

2012-07-23 Thread larry google groups
I am confused by this blog post: http://www.bestinclass.dk/index.clj/2009/09/php-vs-clojure-what-does-it-cost-to-be-old-school.html In particular, I am confuse by this function: (defn log-dumper [a] (Thread/sleep *write-delay*) (let [sql-statements (let [tmp @*sql-buffer*]

Re: How do you determine terminal/console width in `lein repl`?

2012-07-23 Thread Gabriel Horner
With some pointers from Colin, https://github.com/trptcolin/reply/issues/75, I was able to find a workable solution using stty: user=> (->> (clojure.java.shell/sh "/bin/sh" "-c" "stty -a < /dev/tty") :out (re-find #"(\d+) columns") second) "238" As for the $COLUMNS dilemma, it seems that's a j

Re: reduction to tail recursion

2012-07-23 Thread Christian Mueller
No, not any recursion can be expressed as a tail recursion. One example: the Ackermann function (http://en.wikipedia.org/wiki/Ackermann_function) On Saturday, July 21, 2012 11:15:33 AM UTC+2, Mimmo Cosenza wrote: > > Hi, > a very basic question. Any "not tail recursion" code can be reduced to >

Re: how can "a" become *agent* in this code?

2012-07-23 Thread Philip Potter
"a" is the current value of the agent. *agent* is the agent itself. Remember the universal update mechanism: an agent, atom or ref is updated by applying a (normally) pure function to it; the function takes the current state and returns the new state. Phil On Jul 24, 2012 5:16 AM, "larry google g

[ANN] table 0.3.0 release - ascii tables that fit in your terminal

2012-07-23 Thread Gabriel Horner
Hi, Announcing a new version of table, https://github.com/cldwalker/table, a clojar that prints ascii tables for almost any data structure. This release allows tables to automatically fit your terminal's width. Thanks, Gabriel -- You received this message because you are subscribed to the Go

Re: Logger conflicts

2012-07-23 Thread Peter Taoussanis
Hi Eric, I can't offer any advice on resolving this particular incompatibility, but I would say that Java logging config difficulties are frustratingly common in my experience. If the opportunity ever arises, I'd suggest you take a look at Timbre as an alternative: https://github.com/ptaoussan

Re: reduction to tail recursion

2012-07-23 Thread Alan Malloy
I don't see how the definition of primitive-recursive is relevant to this. You can transform primitive recursion to tail recursion if you allocate a "stack" of your own on the heap, and don't mind that it might grow without bound. Or you can transform to continuation-passing or trampolines (fun