Re: questions about clojure's core library organization

2010-04-18 Thread Per Vognsen
On Mon, Apr 19, 2010 at 12:15 PM, falcon wrote: > As I understand it, map is, itself, lazy. Does that mean that using > map to implement these methods would create extra intermediate > structures? Yes. > What if often used functions such as map/reduce/filter were macros, > that could 'deforest'

Re: questions about clojure's core library organization

2010-04-18 Thread falcon
As I understand it, map is, itself, lazy. Does that mean that using map to implement these methods would create extra intermediate structures? What if often used functions such as map/reduce/filter were macros, that could 'deforest' (to use Haskell terminology) these intermediate structures? Impl

Re: questions about clojure's core library organization

2010-04-18 Thread Per Vognsen
How about this: Symbols in namespaces are optionally organized into groups. The vehicle might be something as simple as a :group metadata entry on the symbols. When symbols from other namespaces are referred, new local copies are created with :group metadata equal to the namespace name. When refer

Re: questions about clojure's core library organization

2010-04-18 Thread Per Vognsen
On Mon, Apr 19, 2010 at 10:30 AM, falcon wrote: > 1. core.clj is a gigantic library with more than 400 function > definitions (378 defns and 62 defmacros to be exact).  I didn't expect > to find sequence related functions, such as map/reduce in core. > Doesn't it make sense to move functions to mo

Re: questions about clojure's core library organization

2010-04-18 Thread Richard Newman
Something like the 'for' macro (if it is thought of as a non-general monad) can be implemented in terms of reduce. Is there a reason this isn't so? I can think of two: * filter and map are lazy. Implementing every? and some? in those terms would needlessly introduce lazy sequences to the