Without testing or anything that looks reasonable enough. I'm sure that
there are plenty caveats around infinite seqs, etc. though.


On 14 February 2013 14:22, Joachim De Beule <joachim.de.be...@gmail.com>wrote:

> Thanks! So you mean like this (assuming some function elt->event):
>
> (defn seq->event-stream [input-seq]
>   (let [remaining (atom input-seq)]
>     (proxy [EventStream] []
>       (next [] (let [current (first @remaining)]
>                     (swap! remaining rest)
>                     (elt->event current)))
>       (hasNext [] (not (empty? @remaining))))))
>
>
>
> 2013/2/14 Ulises <ulises.cerv...@gmail.com>
>
>> How about having your methods access an atom provided in a closure like
>> it's done here:
>> http://kotka.de/blog/2010/03/proxy_gen-class_little_brother.html
>>
>> U
>>
>>
>> On 14 February 2013 13:58, Joachim De Beule 
>> <joachim.de.be...@gmail.com>wrote:
>>
>>> Hi All,
>>>
>>> I want to turn a clojure sequence into an 'EventStream' java interface
>>> in clojure (see
>>> http://opennlp.apache.org/documentation/1.5.2-incubating/apidocs/opennlp-maxent/index.html).
>>> Basically this is an object that implements next() and hasNext() methods.
>>>
>>> I know this can be done with proxy:
>>>
>>> (proxy [EventStream] []
>>>    (hasNext [] ...)
>>>    (next [] (Event. ...) ...))
>>>
>>> What I am not sure about is how to deal with state. More precisely, the
>>> object returned by the above call to proxy obviously must somehow keep a
>>> pointer to the current position in the input sequence and increment the
>>> index after a call to next() etc.
>>>
>>> Any ideas on how to best do something like this?
>>>
>>> Thanks a lot!
>>> Joachim.
>>>
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to