On Mon, Nov 24, 2008 at 2:34 PM, Kevin Downey <[EMAIL PROTECTED]> wrote:
> ref-set needs its one set of parens, and the last thing in the ref-set
> call needs to be a function either (fn [x] ...) or a symbol for a var
> that holds a function

I made a mistake here. I was thinking of alter, not ref-set.


> On Mon, Nov 24, 2008 at 2:30 PM, Brian Doyle <[EMAIL PROTECTED]> wrote:
>> Thanks Kevin, I will try using reduce instead.  I would like to know what
>> I'm doing wrong with updating the ref for future reference.  Thanks.
>>
>> On Mon, Nov 24, 2008 at 3:23 PM, Kevin Downey <[EMAIL PROTECTED]> wrote:
>>>
>>> I know you are asking about refs, but you might want to think about
>>> using reduce to walk the line-seq. the nature of reduce lets you have
>>> access to the line-seq, two lines at a time no need for a ref.
>>>
>>> On Mon, Nov 24, 2008 at 2:17 PM, Brian Doyle <[EMAIL PROTECTED]>
>>> wrote:
>>> > I am parsing a file and to compare the current line
>>> > with the previous line of the file.  I am using line-seq
>>> > to go thru the file and I thought I would create a
>>> > ref to store the previous line.   When I want to update
>>> > the previous line value I can't seem to do it.  I've
>>> > never used refs before so I'm sure I'm doing something
>>> > very stupid.
>>> >
>>> > (defstruct line :lat :lon :name)
>>> >
>>> > (defn convert [file]
>>> >   (let [prev-line (ref (struct line))]
>>> >     (with-open [r (reader file)]
>>> >        (doseq [l (line-seq r)]
>>> >          (let [ps (split #"," l)
>>> >                 c-line (struct line (ps 0) (ps 1) (ps 2))]
>>> >            (if (not= c-line @pre-line)
>>> >              (do ; do stuff here then update pre-line
>>> >                 (dosync ref-set pre-line (apply struct line (vals
>>> > c-line)))
>>> >                 (println @pre-line))))))))  ; this prints out all nils
>>> > doesn't seem to work
>>> >
>>> >
>>> >
>>> > Sorry if this email is not formatted correctly.  Something is wrong with
>>> > my
>>> > browser
>>> > currently typing in a textarea.  Thanks.
>>> >
>>> >
>>> >
>>> > >
>>> >
>>>
>>>
>>>
>>> --
>>> The Mafia way is that we pursue larger goals under the guise of
>>> personal relationships.
>>>    Fisheye
>>>
>>>
>>
>>
>> >>
>>
>
>
>
> --
> The Mafia way is that we pursue larger goals under the guise of
> personal relationships.
>    Fisheye
>



-- 
The Mafia way is that we pursue larger goals under the guise of
personal relationships.
    Fisheye

--~--~---------~--~----~------------~-------~--~----~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to