On Tue, 2012-09-04 at 14:34 -0700, Mark Hamstra wrote:
> What I am eventually working toward is being able to do the equivalent
> to the above Scala interaction in Clojure:
> 
> 
> user=> (framework-map #(+ % 1) aDataSet)
> 
> 
> but as an intermediate step, I'm trying to get named function-like
> parameters working before tackling anonymous functions.

I believe it will actually be easier to get going with functions.  You
should be able to write these functions with `reify' or `deftype' on
scala.FunctionN or `proxy' on scala.AbstractFunctionN:

(defn scala-function1
  "Convert a one-argument Clojure function to a scala.Function1."
  [f]
  (reify scala.Function1
    (apply [_ x] ...)
    ...other methods...))

(defn scala-function2
  ...and so on

The next step is to build a `scala-function' that picks the right
FunctionN interface to implement based on arities of the IFn you get as
input.

> private def getClassReader(cls: Class[_]): ClassReader = {
>     logInfo("attempted class name: " + cls.getName.replaceFirst("^.*\
> \.", "") + ".class")
>     new ClassReader(cls.getResourceAsStream(
>       cls.getName.replaceFirst("^.*\\.", "") + ".class"))
>   }

That assumes that this craziness doesn't get in the way.  The trick here
is that by putting your reify/deftype/proxy *once*, AOTing that, you'll
reuse the same Scala function class for every Clojure function.  That
depends, of course, on the Clojure functions *not* dropping into this
nonsense.

-- 
Stephen Compall
"^aCollection allSatisfy: [:each | aCondition]": less is better than


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

Reply via email to