I'll ask this differently. I do not see "a" used anywhere inside of that 
function. So why is it being given to that function? 



On Tuesday, July 24, 2012 1:36:27 AM UTC-4, Philip Potter wrote:
>
> "a" is the current value of the agent. *agent* is the agent itself. 
>
> Remember the universal update mechanism: an agent, atom or ref is updated 
> by applying a (normally) pure function to it; the function takes the 
> current state and returns the new state. 
>
> Phil 
> On Jul 24, 2012 5:16 AM, "larry google groups" <lawrencecloj...@gmail.com> 
> wrote:
>
>>
>> I am confused by this blog post:
>>
>>
>> http://www.bestinclass.dk/index.clj/2009/09/php-vs-clojure-what-does-it-cost-to-be-old-school.html
>>
>> In particular, I am confuse by this function:
>>
>> (defn log-dumper
>>   [a]
>>   (Thread/sleep *write-delay*)
>>   (let [sql-statements  (let [tmp @*sql-buffer*]
>>                           (ref-set *sql-buffer* [])
>>                            tmp)]
>>     (doseq [stmt sql-statements]
>>       (run *mysql-connection* stmt))
>>     (send-off *agent* log-dumper)))
>>
>>
>> It looks like "a" is being passed in as an argument to the function. But 
>> at the end of the function, *agent* is being passed into the function 
>> again. I don't see a point in this function where "a" is magically 
>> transformed into *agent*. I'm under the impression that this same agent is 
>> suppose to be sent, over and over again, every 5 minutes, for all eternity, 
>> into the function. But if the function is suppose to send the same agent to 
>> itself, 5 minutes in the future, then I would think that if the argument is 
>> named "a" then "a" is what would be send-off to the function again. 
>>
>> The blog post says:
>>
>> ""send-off" myself (the *agent* is the thread) to the same function 
>> again, ie. keep running."
>>
>> How does this work? How does the final line know that *agent* is the "a" 
>> that was passed in as an argument? 
>>
>>
>>
>>
>>
>>  -- 
>> 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 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