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