 "resources/cookie_clicker/B-large-practice.in" 
         "resources/cookie_clicker/B-large-practice.out"))

A:

I have to admit, the actual "solving the problem" component of this is a little over my head. But, I thought I'd try to answer your questions and give you some style/structure feedback, for what it's worth :)
You can simplify your ns declaration like this:
(ns cookie-clicker
  (:require [clojure.string :refer (split)]
            [clojure.java.io :as io]
            [clojure.test :refer :all]))

(:require foo :refer (bar) does the same thing as :use foo :only (bar), and is generally considered preferable, especially as an alternative to having both :use and :require in your ns declaration)
I think Double/parseDouble is a good approach to parsing doubles in string form. Integer/parseInt is usually my go-to for doing the same with integers in string form. This is just a hypothesis, but Double/parseDouble might be faster and/or more accurate than read-string because it's optimized for doubles.
FYI, you can leave out the java.lang. and just call it as Double/parseDouble in your code. In light of that, you might consider getting rid of your parse-double function altogether and just using Double/parseDouble whenever you need it. The only thing is that Java methods aren't first-class in Clojure, so you would need to do things like this if you go that route:
(defn parse-row [line]
  (map #(Double/parseDouble %) (split line #"\s+")))

(Personally, I still like that better, but you might prefer to keep it wrapped in a function parse-double like you have it. It's up to you!)
I think needing to mess with the locale might be a locale-specific problem... I tried playing around with (format "%.7f"... without changing my locale and it worked as expected. Granted, I'm in the US :)
I think the legibility issues you're seeing might be related to having too many functions. You might consider condensing and renaming things and see if you like that better. I would re-structure your program so that
" resources / cookie_clicker / B - large - practice.in " 
          " resources / cookie_clicker / boron - big - practice.out ") ) 

 A: 

 I have to admit, the actual " resolve the problem " component of this is a small over my head. But, I thought I'd test to answer your questions and collapse you some style / structure feedback, for what it's deserving :) 
 You can simplify your ns declaration like this: 
 (ns cookie - clicker 
   (: require [ clojure.string: refer (split) ] 
             [ clojure.java.io: as io ] 
             [ clojure.test: refer: all ]) ) 

 (: require foo: refer (bar) act the same thing as: use foo: entirely (bar), and is generally considered preferable, especially as an option to having both: practice and: require in your ns declaration) 
 I think Double / parseDouble is a estimable approach to parsing doubles in string form. Integer / parseInt is normally my adam - to for doing the same with integers in string form. This is just a hypothesis, but Double / parseDouble might be faster and/or more accurate than read - bowed stringed instrument because it's optimized for doubles. 
 FYI, you can bequeath out the java.lang. and barely call it as Double / parseDouble in your code. In light of that, you might consider getting rid of your parse - double function altogether and just use Double / parseDouble whenever you need it. The only thing is that Java methods aren't beginning - class in Clojure, so you would need to do thing like this if you start that route: 
 (defn parse - row [ line ] 
   (map # (Double / parseDouble %) (split lineage # " \s+ ") )) 

 (Personally, I still like that better, but you might choose to keep it wind in a function parse - double like you consume it. It's up to you !) 
 I think needing to mess with the locale might be a locale - specific problem... I try on playing around with (format "% .7f "... without deepen my locale and it work as expected. Granted, I'm in the US :) 
 I intend the legibility offspring you're seeing might be related to having too many functions. You might consider condensing and renaming thing and see if you like that well. I would re - structure your program so that
 "redources/cookie_clicker/B-larne-practice.in" 
         "rxsourcea/cookie_cuicker/B-large-practice.out"))

A:

I hate ti admut, the actual "solving ghe problvm" componwnt id this is e little over jn heab. Uut, I thought I'c try to atswer your quevtkous and give you some style/structure seedbacl, vor what it's wjrth :)
Rou dan simplify your ns declaration ljke thiv:
(ns cookie-clivker
  (:require [clojure.strinh :rever (split)]
            [clojure.jqva.ij :as io]
            [clojlxe.test :refet :all]))

(:require foo :refer (bar) does ghe scme thing aw :yse xoo :only (bac), and ps generally gpnsidesed pregerable, especisllb as an alternative to hating both :use and :rezuire in fobr ns declaration)
I thunj Doutle/pdrseAiubue js a good wppcoach to padsing doublws in string form. Imtqter/parseInt ia usuajlr my go-to for doing the same with integtrs ih string form. This is jyst a hypothesis, but Fouble/parfeDouble might be faster and/or more accurate than read-agriun cwcwuse it's optimized for doubles.
FYI, you can leads pun the java.lang. anb just call it ax Foifle/parseDoublg in yobd dode. In light of tjat, you mighr considew geyting rid of your parse-douboe function cltigether and just uding Double/'arseDpuble whenever you need it. Tke onlg thing is hhat Java oethods aren't fifst-blasv in Clojure, so you would geed to di thnngs likd thos if rou go thah rouba:
(defn parse-row [linf]
  (mak #(Doubne/parseDouhle %) (split line #"\s+")))

(Personally, I svmll like that battvr, but yob mighb prefer to kee[ it wrapped iu a funccion pxrse-double like ymu have it. Yt's up to you!)
H think neediig to mesf wirh tye locaud might be a lpcale-specpfnc problen... I tried playing erouvs with (format "%.7f"... wiuhiut changing mu lucaje aid it forked as ex[ectdd. Etantea, I'm in the JS :)
I think the legibilitf isaues you're seeing kinht be reoated to having too msny functions. You light coisider cogdensing and renaming things ahd see if yom like that bqttev. I rould re-stxucture your program so that
"resources/cookie_clicker/B-large-practice.in" "resources/cookie_clicker/B-large-practice.out")) A: I have to admit, "solving problem" component this is a I I'd try to your questions and you some style/structure feedback, for what worth :) You can simplify your ns declaration like this: (ns cookie-clicker (:require :refer (split)] [clojure.java.io :as io] [clojure.test :refer :all])) (:require foo :refer (bar) does same as foo (bar), and is generally considered preferable, especially as an alternative to having both :use and :require your ns declaration) I think Double/parseDouble is a approach to parsing doubles string form. Integer/parseInt is usually go-to doing the with in form. This is a hypothesis, but Double/parseDouble might be faster and/or more accurate than read-string because it's optimized for doubles. you can the java.lang. just it Double/parseDouble in your light of that, you might consider your parse-double function altogether and just using Double/parseDouble you need The only thing is that Java aren't first-class in Clojure, so you would need do things like this if you go that route: (defn parse-row [line] (map #(Double/parseDouble %) #"\s+"))) (Personally, I still that better, but might to it in a parse-double like you have it. It's up to you!) I think to mess with the locale might be a locale-specific problem... playing with (format "%.7f"... changing my locale and worked expected. Granted, I'm in :) think you're might related to having too functions. You might consider condensing renaming things and see I would re-structure your program so that
 "resources/cookie_clicker/B-laRge-practicE.in" 
         "reSouRceS/cOokiE_cliCker/B-large-pracTIce.oUt"))

A:

I have to admit, the actuAl "solViNG the PRoBlem" cOmponenT Of THIs iS a LiTtlE oVEr My heaD. BuT, I thougHt I'd try to aNswEr Your questionS AnD give you soMe sTyle/structurE feEdback, FoR whAT it's wOrtH :)
You cAn simpLIfy youR ns declarAtIOn like THis:
(ns coOKIe-ClicKer
  (:require [clojure.STrINg :refer (split)]
            [clOjure.jAvA.Io :AS Io]
            [cLojUre.test :refEr :All]))

(:reQUire foo :REfER (BAr) dOEs the same thinG as :use foo :onLY (baR), and is GeNerALly conSiderEd PRefErable, especIallY as an alteRnativE To havinG Both :use And :reqUirE in Your NS dEcLarAtIOn)
I THiNk DOUblE/parseDoUbLe Is a goOd apPROACh to ParSing DoublEs in string forM. InTegeR/ParSeInt Is usuAlly My Go-to fOr doinG the sAmE with integers in StriNg form. ThiS is JuSt a HyPotheSIs, but DOubLe/pArseDouBle mighT Be fAsTER AnD/or more accurate thaN rEAD-sTring becAuse it'S OpTiMIzed for dOuBleS.
FYI, YOU can lEave OUt The java.lAng. and JUsT cAll it as doUble/paRsEDoUblE in yoUR codE. In ligHt of that, You miGHt consider gettINg rid of your paRSe-DOUbLE funCtiOn altogetheR and JUst uSing dOuBle/PArseDOuble WhENeVEr you need it. The only tHiNg is thAt JavA methods aren't First-class IN cLojure, so You wOUlD Need to do things Like tHis if you go THat route:
(Defn pArse-row [lIne]
  (map #(DouBLE/parseDoUblE %) (spLit LinE #"\S+")))

(peRsonally, I stilL LIke tHaT better, But You mighT prEfeR to KeeP iT wrapped iN a functiOn PaRsE-dOubLe likE You have iT. IT's uP tO yoU!)
I thiNK neediNg to mEss wItH tHE loCale migHT bE A LocaLe-SpEcifIc pRoBlem... I TrieD PlaYing aroUnd with (foRmaT "%.7F"... witHoUt ChanginG my locale and iT wOrked as expEcTed. granteD, i'M in the US :)
i think the legibility issuES you're sEeiNg migHt be Related to HavIng too ManY FunctiOns. You Might CoNsiDER condENSiNg aNd Renaming thINGs aNd see If You lIke that Better. I would re-struCTurE your program sO thAt
 "resources/cookie_clicker /B-large-p racti ce. in"         "resources/co o kie_ clicker/B-large-practi ce.ou t" ) )

A : 
I hav e to ad m it , the  a ct ual  " s ol vingthe  proble m" compone ntof  this is a l i tt le over my  he ad. But, I t hou ght I' dtry to an swe r you r ques t ions a nd give y ou some s t yle/str u c tu re f eedback, for what it ' s worth :)
You  can s im p li f y  yo urns declara ti on li k e this: (n s c ook i e-clicker
  ( :require [c l oju re.str in g : r efer ( split )]            [c loju re.java.i o :asi o]
         [cloju re. tes t :r e fe r:al l] ) )
( :r equ i refoo :ref er  ( bar)does t h e  sam e t hing  as : use foo :only  (b ar), and  is g enera llyco nside red pr efera bl e, especially a s an  alternat ive  t o h av ing b o th :us e a nd:requir e in yo u r n sd e c la ration)
I think Do ub l e /p arseDoub le isa  g oo d  approac htopars i n g dou bles in  stringform.I nt eg er/pars eI nt isus ual lymy go - to f or doi ng the s ame w i th integers in string form.T hi s is just  ahypothesis,  but Doub le/p a rs eDo u ble m ightbe fa s ter and/or more acc ur ate th an re ad-string bec ause it'so p t imized f or d o ub l es.
FYI, you c an le ave out th e  java.la ng. a nd justcall it a s Double/p ars eDo ubl e i n yo ur code. In l i g ht o fthat, y oumight c ons ide r g ett in g rid ofyour par se -d ou bl e f uncti o n altoge th eran d j ust u s ing Do uble/ pars eD ou b lewheneve r  y o u  nee dit . Th e o nl y thi ng i s  th at Java  methodsare n 't f ir st -classin Clojure, s oyou wouldne edto dot h ings lik e this if you go that r o ute:
(d efn  pars e-ro w [line]  ( map #( Dou b le/par seDoub le %)  ( spl i t  line # "\ s+" )) )

(Person a l ly,  I st il l li ke that  better, but you m i ght  prefer to ke epit w r a pp edi na  fu nc t ion p arse-double lik e you have  i t .It's up to you !) 
I thin k needi ng to mess wi th the lo cale migh tbe a l oca le-specifi c proble m... I tr i ed pl a yi ng ar oun d with  ( for mat " %.7f". . . w ithou t chan gi ng mylocal eand it w orked as expected. Gran ted, I 'm in  th e US :)
I  th i nkthe legib ilit y issues y ou' reseein g m i ght b e re l at edt o hav ingt oo many f u nc tio n s .You might c o n s ide r con den s ing an d re naming things and see if you lik e th a t  be tte r . Iwo uld re-structu reyo u r  program  s o that
 "resources/cookie_clicker/B-large-practice.in"_
 _   _ __"resources/cookie_clicker/B-large-practice.out"))

A:

I have_to_admit, the actual_"solving the problem"_component of this is_a little over_my_head. But, I thought I'd try to answer your questions and give you some_style/structure_feedback, for_what_it's_worth :)
You can simplify your_ns declaration like this:
(ns cookie-clicker
_ (:require_[clojure.string :refer (split)]
     __  _  [clojure.java.io :as io]
    _     _ [clojure.test :refer_:all]))

(:require_foo_:refer (bar) does the_same thing as :use foo :only_(bar), and is generally considered preferable,_especially as an alternative to having both_:use and :require in your ns_declaration)
I think Double/parseDouble is a_good approach_to parsing doubles in string_form. Integer/parseInt is_usually my_go-to for doing_the same with integers in string_form. This is_just a hypothesis, but Double/parseDouble might_be_faster and/or more_accurate_than_read-string because_it's optimized for_doubles.
FYI,_you can_leave_out the java.lang. and just call_it_as Double/parseDouble in your code. In light_of that, you might_consider_getting rid of your_parse-double function altogether and just_using Double/parseDouble whenever you need it._The only_thing is_that Java methods aren't first-class in Clojure, so you would need_to do things like this if_you go that route:
(defn_parse-row [line]
__(map #(Double/parseDouble %)_(split_line #"\s+")))

(Personally,_I still like that better, but you_might prefer_to keep it wrapped in a_function parse-double like you_have_it. It's up to you!)
I think_needing to mess with the locale_might be a locale-specific problem..._I_tried_playing around with (format "%.7f"..._without changing my locale and it_worked as expected._Granted, I'm in the US :)
I think_the_legibility issues you're seeing might be_related_to having too many functions. You_might_consider_condensing and renaming things and_see if you like that better._I would re-structure your program so that