Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defn calculate []
  2.   (let [form-value (comp value by-id)
  3.         parse-double (comp js/parseFloat #(s/replace % #"[^\d]" ""))
  4.         total-pop (parse-double (form-value "total_pop"))        
  5.         mil-pop (parse-double (form-value "mil_pop"))        
  6.         pes-pop (parse-double (form-value "pes_pop"))        
  7.         wiz-pop (parse-double (form-value "wiz_pop"))        
  8.         patriotism (form-value "patriotism")
  9.         target-draft (form-value "target_draft")
  10.         draft-rate (* (if patriotism 1.3 1.0)
  11.                       (draft-table (form-value "draft_rate")))          
  12.         sols-needed (- (* total-pop (/ target-draft 100)) mil-pop)
  13.         desired-peasants (- pes-pop sols-needed)
  14.         peasant-decay (- (dec draft-rate))
  15.         hours (/ (Math/log (/ desired-peasants pes-pop)) (Math/log peasant-decay))
  16.         ]
  17.     (set-value! (by-id "hours") (Math/ceil hours))
  18.     false))
  19.  
  20.  
  21. (defn ^:export init []
  22.   (if (and js/document
  23.            (.-getElementById js/document))
  24.     (let [theForm (.getElementById js/document "draftForm")]
  25.       (set! (.-onsubmit theForm) calculate))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement