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

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

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