(whiler var (snarfdata) [in var stopval nil] .. body)
-----
>(point 1 2) (point 1 2)
>'#3(tagged point (1 2)) #3(tagged point (1 2))
Yes, the key is rehashed.
But really, the point is that proto-tables are quite a bit easier to use: you still retain the table lookup syntax tb.key
(def rec-avg (lst) (if acons.lst (/ (apply + (map rec-avg lst)) len.lst) lst))
(mac biased-choice choices (cons 'rand-choice (apply join (map [n-of car._ cadr._] pair.choices)))) (def biased-choice choices (random-elt (apply join (map [n-of car._ cadr._] pair.choices))))
(def reducecollect (sum list start) (if acons.list (let csum (sum start car.list) (cons csum (reducecollect sum cdr.list csum))))) (def zip args (when (all acons args) (cons (map car args) (apply zip (map cdr args))))) (mac biased-choice choices (with (ranges (reducecollect + (map car pair.choices) 0) items (map cadr pair.choices) random (uniq)) `(let ,random (* (rand) ,last.ranges) (if ,@(apply join (zip (map [list '< random _] ranges) items))))))
(def zip args (apply map list args))
(def unzip (xs (o n 2)) (apply map list (tuples xs n))) arc> (unzip '(a b c d e f) 3) ((a d) (b e) (c f))
But running your webserver as root is a huge security risk. If your app is ever exploited, your whole system will be compromised.
try this instead and run your server on port 8080 http://en.wikipedia.org/wiki/Iptables#Redirection_example
http://arclanguage.org/item?id=7462
http://arclanguage.org/item?id=7365
http://arclanguage.org/item?id=7530