Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AoC2022
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Valentini, Felix
AoC2022
Commits
bcad0f95
Commit
bcad0f95
authored
Dec 8, 2022
by
flex99
Browse files
Options
Downloads
Patches
Plain Diff
working on day 7
parent
1d40fd0b
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
7/input.txt
+1010
-0
1010 additions, 0 deletions
7/input.txt
7/sample.txt
+23
-0
23 additions, 0 deletions
7/sample.txt
7/solve.hs
+56
-0
56 additions, 0 deletions
7/solve.hs
with
1089 additions
and
0 deletions
7/input.txt
0 → 100644
+
1010
−
0
View file @
bcad0f95
$ cd /
$ ls
dir cmvqf
dir dcgbjvj
57426 gszshjwr.lrs
dir nsgms
124423 rjqns.prb
dir wqvv
$ cd cmvqf
$ ls
6852 cnsb.cmm
319810 cwqbmjb.vpl
dir dcgbjvj
dir ddnclwtd
dir gccnrw
dir qwzphd
dir rvqwnjv
dir ssmf
107040 trttdw.jsn
dir wcn
296426 wqvv
$ cd dcgbjvj
$ ls
dir dcgbjvj
dir rlvcvj
$ cd dcgbjvj
$ ls
214674 gsqcwfmz.hlm
$ cd ..
$ cd rlvcvj
$ ls
151752 cnsb.cmm
256829 sjlwgf.mqn
$ cd ..
$ cd ..
$ cd ddnclwtd
$ ls
177893 fpwznlp.zsf
$ cd ..
$ cd gccnrw
$ ls
dir mbfw
dir rlvcvj
dir wsrdh
dir wvq
dir zgpdl
$ cd mbfw
$ ls
dir dcgbjvj
dir mhnjvrl
271166 ptrv
$ cd dcgbjvj
$ ls
dir npjmq
$ cd npjmq
$ ls
26712 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd mhnjvrl
$ ls
190094 mgrdrbl.lqg
199191 zgczmvng
22082 zgczmvng.rld
$ cd ..
$ cd ..
$ cd rlvcvj
$ ls
244617 mbjprm
264738 wpgglg
$ cd ..
$ cd wsrdh
$ ls
dir mgmp
111558 vnqmnjpb.bnc
$ cd mgmp
$ ls
dir whzjb
$ cd whzjb
$ ls
235442 mgrdrbl.lqg
63642 sphms.tzw
$ cd ..
$ cd ..
$ cd ..
$ cd wvq
$ ls
23240 dcgbjvj.rwc
79015 hcb
155120 jjc
dir wqvv
207559 wqvv.cwp
$ cd wqvv
$ ls
130961 cnsb.cmm
dir fcl
208524 hgbr.snf
dir lzs
14868 mgrdrbl.lqg
dir sqpgtrn
143653 zgczmvng
$ cd fcl
$ ls
dir jfjgnz
$ cd jfjgnz
$ ls
225416 trttdw.jsn
$ cd ..
$ cd ..
$ cd lzs
$ ls
111949 vtcmf
$ cd ..
$ cd sqpgtrn
$ ls
289955 cnsb.cmm
dir crstpjjv
dir dcgbjvj
6334 nwv.blw
dir vpnhcsfr
$ cd crstpjjv
$ ls
144739 jtcndb.wht
16215 qdccst.dsg
$ cd ..
$ cd dcgbjvj
$ ls
dir bnzmws
dir crstpjjv
82495 fjmbgql
248051 hlcwhnf
145452 qwzjc.sth
dir spmr
268967 wqvv
23371 wqvv.vdm
dir zgczmvng
$ cd bnzmws
$ ls
dir dcgbjvj
dir dgbtqdn
119626 pvgrqjf.ftq
204879 tscrpt.szt
$ cd dcgbjvj
$ ls
152171 msf.qhf
$ cd ..
$ cd dgbtqdn
$ ls
64965 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd crstpjjv
$ ls
97804 mgrdrbl.lqg
88837 trttdw.jsn
$ cd ..
$ cd spmr
$ ls
302501 dcgbjvj
$ cd ..
$ cd zgczmvng
$ ls
dir crstpjjv
187957 prznqbn
$ cd crstpjjv
$ ls
218211 jlb.nvs
$ cd ..
$ cd ..
$ cd ..
$ cd vpnhcsfr
$ ls
220411 qtcdjgz
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd zgpdl
$ ls
dir llstdpv
dir rtftjm
$ cd llstdpv
$ ls
318556 qqccwwjf.mbw
$ cd ..
$ cd rtftjm
$ ls
117705 fwphh.zrz
$ cd ..
$ cd ..
$ cd ..
$ cd qwzphd
$ ls
dir crstpjjv
dir fvfmlgql
dir ldbts
dir ljtcgz
dir llvhbzpz
dir plcbgmwc
dir pwp
dir qjstb
58078 wmc
$ cd crstpjjv
$ ls
171196 sbf.vcc
320608 trttdw.jsn
$ cd ..
$ cd fvfmlgql
$ ls
dir hfdnml
298497 trttdw.jsn
$ cd hfdnml
$ ls
43441 crstpjjv.vrr
$ cd ..
$ cd ..
$ cd ldbts
$ ls
211746 crstpjjv
224627 rcw.rcl
$ cd ..
$ cd ljtcgz
$ ls
dir dfrnh
179456 fmbpcdbd.vrl
141254 fpwznlp.zsf
86291 pcmqcl.jmz
266763 pzvg.qcg
dir zjjbjn
$ cd dfrnh
$ ls
dir crstpjjv
$ cd crstpjjv
$ ls
220983 wqvv.hhn
$ cd ..
$ cd ..
$ cd zjjbjn
$ ls
215454 nwcbbv.mbb
$ cd ..
$ cd ..
$ cd llvhbzpz
$ ls
206731 cnsb.cmm
$ cd ..
$ cd plcbgmwc
$ ls
223141 fpwznlp.zsf
dir hplrsb
309856 jhdwr.jfc
dir mhmnmd
218364 mmfzhj.zvg
dir nwnj
316432 trttdw.jsn
dir vrgj
$ cd hplrsb
$ ls
dir lbscwd
dir lsffhj
dir mlfp
dir pqfbf
dir tcvjzzhj
dir wqvv
$ cd lbscwd
$ ls
157261 wvblz.hmp
$ cd ..
$ cd lsffhj
$ ls
171621 crstpjjv
$ cd ..
$ cd mlfp
$ ls
80994 vvjzm.pzt
$ cd ..
$ cd pqfbf
$ ls
67861 ltd.zbw
dir nnsg
dir nwcl
107828 rlvcvj
160956 trttdw.jsn
$ cd nnsg
$ ls
18252 tzcrqv.rsr
$ cd ..
$ cd nwcl
$ ls
38378 cnsb.cmm
217283 dqwpwzz
220081 mgrdrbl.lqg
28106 sbf.vcc
$ cd ..
$ cd ..
$ cd tcvjzzhj
$ ls
152965 dhv
316034 gvtdrj.rft
$ cd ..
$ cd wqvv
$ ls
281962 mfzf.nfn
95321 rlvcvj.zwf
$ cd ..
$ cd ..
$ cd mhmnmd
$ ls
213145 cnsb.cmm
dir hnzcz
273060 mnwhg
dir qcwdvq
318596 trttdw.jsn
$ cd hnzcz
$ ls
177795 fpwznlp.zsf
188898 rlvcvj
317234 wqvv.jsv
dir zgczmvng
$ cd zgczmvng
$ ls
dir qzfw
$ cd qzfw
$ ls
134097 rlvcvj
73145 sbf.vcc
$ cd ..
$ cd ..
$ cd ..
$ cd qcwdvq
$ ls
83084 wqvv
$ cd ..
$ cd ..
$ cd nwnj
$ ls
84366 hgpmqh
317603 mgrdrbl.lqg
$ cd ..
$ cd vrgj
$ ls
136595 fpwznlp.zsf
78517 sbf.vcc
dir wqvv
242465 wqvv.cpl
dir zln
$ cd wqvv
$ ls
3191 sbf.vcc
$ cd ..
$ cd zln
$ ls
dir crstpjjv
$ cd crstpjjv
$ ls
86511 btqgw
17597 rcstn.jpj
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd pwp
$ ls
dir crstpjjv
dir jlqdbv
290915 mgrdrbl.lqg
219909 nfgj
207313 sbf.vcc
dir zpjf
$ cd crstpjjv
$ ls
298992 crnfs.fgn
172934 jqh
$ cd ..
$ cd jlqdbv
$ ls
300436 zgczmvng
$ cd ..
$ cd zpjf
$ ls
78904 sbf.vcc
$ cd ..
$ cd ..
$ cd qjstb
$ ls
dir dtb
dir gcd
dir gmcnhh
85552 htm.lzc
219773 mzb.fvt
208419 schz
$ cd dtb
$ ls
167147 crstpjjv.zlb
$ cd ..
$ cd gcd
$ ls
239595 rlvcvj
$ cd ..
$ cd gmcnhh
$ ls
111653 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd ..
$ cd rvqwnjv
$ ls
59215 cnsb.cmm
37164 jtlcr.rlm
dir mnc
$ cd mnc
$ ls
32159 cnsb.cmm
76204 trttdw.jsn
$ cd ..
$ cd ..
$ cd ssmf
$ ls
dir fvcd
127458 hpdzv
dir jcg
288242 jtjp.mjj
dir jzp
268857 mgrdrbl.lqg
223968 nhfmbvc
dir wqvv
235806 wqvv.fnl
$ cd fvcd
$ ls
26479 wcs.bdp
$ cd ..
$ cd jcg
$ ls
dir nsvtrs
dir zgczmvng
$ cd nsvtrs
$ ls
dir dcgbjvj
$ cd dcgbjvj
$ ls
36633 trttdw.jsn
$ cd ..
$ cd ..
$ cd zgczmvng
$ ls
221381 vszcg.jdb
$ cd ..
$ cd ..
$ cd jzp
$ ls
1957 dcgbjvj
$ cd ..
$ cd wqvv
$ ls
9330 wqvv.pvs
46963 ztlh
$ cd ..
$ cd ..
$ cd wcn
$ ls
dir cqdzdnq
dir cszzg
dir fqmcr
123361 pjfdtvzf.rdf
dir rmrg
dir rsfddzs
dir vqrpdwv
dir wpgddhdq
dir wpgv
$ cd cqdzdnq
$ ls
dir dqhpbsg
dir qlq
dir vfwhcpwl
dir wqvv
dir zpbbspcv
$ cd dqhpbsg
$ ls
245289 glbfq.vpw
51357 vsvvzbns.ftf
$ cd ..
$ cd qlq
$ ls
210318 mqgnjht.vqq
$ cd ..
$ cd vfwhcpwl
$ ls
109892 mmpzcjmp.znn
$ cd ..
$ cd wqvv
$ ls
dir chwdzfsg
dir crstpjjv
dir dcgbjvj
dir rllbccjt
dir rlvcvj
$ cd chwdzfsg
$ ls
108951 fpwznlp.zsf
dir vgc
$ cd vgc
$ ls
273011 fpwznlp.zsf
248078 ntc.ghp
77305 thgbb.mfn
73383 trttdw.jsn
$ cd ..
$ cd ..
$ cd crstpjjv
$ ls
dir qmswb
$ cd qmswb
$ ls
68252 trttdw.jsn
$ cd ..
$ cd ..
$ cd dcgbjvj
$ ls
111 qtcs.llc
dir szzthsmj
$ cd szzthsmj
$ ls
dir qhztdv
dir wqvv
dir zmqrftlm
$ cd qhztdv
$ ls
138433 qrdsrrb.chw
dir rlvcvj
$ cd rlvcvj
$ ls
dir jfcm
dir lzf
249984 rlvcvj.nmb
dir twrs
$ cd jfcm
$ ls
117884 dtrc.wsm
237577 rlvcvj.mhd
$ cd ..
$ cd lzf
$ ls
60342 nrc.clh
$ cd ..
$ cd twrs
$ ls
97201 cnsb.cmm
$ cd ..
$ cd ..
$ cd ..
$ cd wqvv
$ ls
73047 gcqzjf.gcb
$ cd ..
$ cd zmqrftlm
$ ls
dir ltd
$ cd ltd
$ ls
120673 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd rllbccjt
$ ls
299611 cnsb.cmm
dir lnfvlqh
36418 qwh
dir rlvcvj
255907 trttdw.jsn
dir zqvzpv
$ cd lnfvlqh
$ ls
195010 fpwznlp.zsf
72496 llrznf.rwc
dir lvgzb
53126 mgrdrbl.lqg
90191 mnrqtn
310156 nthdm.crh
$ cd lvgzb
$ ls
209837 mgrdrbl.lqg
210074 rwhgmd
70338 sbf.vcc
$ cd ..
$ cd ..
$ cd rlvcvj
$ ls
252080 dcgbjvj
$ cd ..
$ cd zqvzpv
$ ls
249229 zpt.lbc
$ cd ..
$ cd ..
$ cd rlvcvj
$ ls
dir dcgbjvj
dir fdz
$ cd dcgbjvj
$ ls
191363 trttdw.jsn
$ cd ..
$ cd fdz
$ ls
291107 bqsdfc.rcn
dir dcgbjvj
64333 fpwznlp.zsf
dir lfb
280608 mgrdrbl.lqg
125554 trttdw.jsn
$ cd dcgbjvj
$ ls
169326 qwjhpdh
$ cd ..
$ cd lfb
$ ls
35299 zqfnjtr.clt
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd zpbbspcv
$ ls
54549 mgrdrbl.lqg
$ cd ..
$ cd ..
$ cd cszzg
$ ls
dir wqvv
$ cd wqvv
$ ls
136042 crstpjjv.jtq
10879 trttdw.jsn
$ cd ..
$ cd ..
$ cd fqmcr
$ ls
188798 bchvt.dvw
276819 fpwznlp.zsf
dir gdr
dir rlvcvj
5623 zgczmvng.fqs
158621 znddbv
$ cd gdr
$ ls
dir btg
213096 cnsb.cmm
dir dhbcmzbz
$ cd btg
$ ls
dir hjm
$ cd hjm
$ ls
144774 zgczmvng.llz
$ cd ..
$ cd ..
$ cd dhbcmzbz
$ ls
148108 rlvcvj
$ cd ..
$ cd ..
$ cd rlvcvj
$ ls
201103 qrdlf.pvg
272776 vnpgw.wts
153826 zgczmvng
290248 zgczmvng.gsv
$ cd ..
$ cd ..
$ cd rmrg
$ ls
dir jzb
dir nsslsw
dir rlvcvj
$ cd jzb
$ ls
273968 trttdw.jsn
$ cd ..
$ cd nsslsw
$ ls
226370 sbf.vcc
$ cd ..
$ cd rlvcvj
$ ls
294706 gsbqswjj
$ cd ..
$ cd ..
$ cd rsfddzs
$ ls
dir cphvtp
205384 crstpjjv
82103 dfrjwrnz.bfl
dir fntvngpm
297145 pqtrvd
237572 sbf.vcc
dir zgczmvng
$ cd cphvtp
$ ls
dir phvc
$ cd phvc
$ ls
52239 dcgbjvj.lbj
$ cd ..
$ cd ..
$ cd fntvngpm
$ ls
18297 mgrdrbl.lqg
$ cd ..
$ cd zgczmvng
$ ls
dir lzcwf
dir pqmc
179956 tzqjcn
dir zgczmvng
$ cd lzcwf
$ ls
284166 cnsb.cmm
157214 jhmmn.qwn
$ cd ..
$ cd pqmc
$ ls
215883 nlvdqw.jmt
dir qjfr
209722 wqvv.fgg
$ cd qjfr
$ ls
53013 mgrdrbl.lqg
191236 sgmnjc
$ cd ..
$ cd ..
$ cd zgczmvng
$ ls
260649 dglqpjs
141213 mgrdrbl.lqg
$ cd ..
$ cd ..
$ cd ..
$ cd vqrpdwv
$ ls
dir ftw
150895 mgrdrbl.lqg
227641 nbrzfl.dpf
dir nwjdnpdd
$ cd ftw
$ ls
99672 dbsgvvbp
dir dnzld
146730 mgrdrbl.lqg
$ cd dnzld
$ ls
37598 bhjbfl.svw
dir qspsslt
$ cd qspsslt
$ ls
dir vhgpwvf
$ cd vhgpwvf
$ ls
146936 ghgl
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd nwjdnpdd
$ ls
46000 trttdw.jsn
$ cd ..
$ cd ..
$ cd wpgddhdq
$ ls
dir rqgf
$ cd rqgf
$ ls
197374 rlvcvj.fmr
$ cd ..
$ cd ..
$ cd wpgv
$ ls
dir fdh
286086 fpwznlp.zsf
dir pljq
258062 wqvv
dir zgczmvng
$ cd fdh
$ ls
76173 fpwznlp.zsf
230947 nczhtpcn
62630 rlvcvj
$ cd ..
$ cd pljq
$ ls
dir mzmm
41117 rjms.dcg
$ cd mzmm
$ ls
144202 zgczmvng.ttl
$ cd ..
$ cd ..
$ cd zgczmvng
$ ls
dir dncr
dir mcdmfdp
dir pgqglmj
dir qldrmn
$ cd dncr
$ ls
198052 dcgbjvj
dir dqdgft
dir hpmwvnsr
2829 rlvcvj.qwg
$ cd dqdgft
$ ls
dir fng
dir nlsmb
$ cd fng
$ ls
198899 zgczmvng
$ cd ..
$ cd nlsmb
$ ls
257121 gmr.vmg
9276 zsmd.bng
$ cd ..
$ cd ..
$ cd hpmwvnsr
$ ls
241101 jjwqbwl.fpl
64151 wqvv
196139 zgczmvng
$ cd ..
$ cd ..
$ cd mcdmfdp
$ ls
276856 lrgbhq
$ cd ..
$ cd pgqglmj
$ ls
36476 fpwznlp.zsf
$ cd ..
$ cd qldrmn
$ ls
295686 trttdw.jsn
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd dcgbjvj
$ ls
dir brdfvd
dir crstpjjv
dir fzdqcgv
dir fzw
dir mrllpw
dir wnh
119561 zgczmvng.jsm
$ cd brdfvd
$ ls
272932 mhdjc.mng
dir wqvv
91053 zgczmvng.jwg
$ cd wqvv
$ ls
dir bpplph
121367 jhlqfn.sbs
61760 nsgbt
46653 sbf.vcc
16952 trttdw.jsn
$ cd bpplph
$ ls
1288 rlvcvj
$ cd ..
$ cd ..
$ cd ..
$ cd crstpjjv
$ ls
117722 sbf.vcc
$ cd ..
$ cd fzdqcgv
$ ls
289819 fpwznlp.zsf
$ cd ..
$ cd fzw
$ ls
dir dcgbjvj
dir zsfqwdth
dir zswdl
$ cd dcgbjvj
$ ls
272427 cnsb.cmm
$ cd ..
$ cd zsfqwdth
$ ls
dir bdbgtqjj
dir hcgrqbhl
$ cd bdbgtqjj
$ ls
318980 tnqmspdf.cwd
$ cd ..
$ cd hcgrqbhl
$ ls
135307 fpwznlp.zsf
dir wqvv
$ cd wqvv
$ ls
68708 ctz.wms
149578 wlvdrfsw.qcj
$ cd ..
$ cd ..
$ cd ..
$ cd zswdl
$ ls
259754 cnsb.cmm
$ cd ..
$ cd ..
$ cd mrllpw
$ ls
44007 tvsm
$ cd ..
$ cd wnh
$ ls
dir mjnrmb
156515 wpdhq.hvp
$ cd mjnrmb
$ ls
293592 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd ..
$ cd nsgms
$ ls
dir dnhzj
dir ptc
dir tnfrr
dir vjt
32152 zgczmvng.wmt
$ cd dnhzj
$ ls
281195 flqbvrw.gmf
177042 jjsfrmc.drz
$ cd ..
$ cd ptc
$ ls
dir gjvnrcln
290797 pccmrnn
59802 rzl.tjm
dir zgczmvng
$ cd gjvnrcln
$ ls
dir jph
$ cd jph
$ ls
105648 hflqlwr.mph
158151 hmlqsp
$ cd ..
$ cd ..
$ cd zgczmvng
$ ls
3700 bwn.wqq
240004 jbvhs.chq
224969 mvftsj
$ cd ..
$ cd ..
$ cd tnfrr
$ ls
dir hlbrpt
237956 mgrdrbl.lqg
dir wqvv
$ cd hlbrpt
$ ls
34424 crstpjjv.rlw
dir dzs
275267 mwrvw
313095 nwqzrc.tnf
61808 wzhgm.fft
$ cd dzs
$ ls
274302 cbbvq.vvh
234166 dcgbjvj.cbq
253156 fpwznlp.zsf
7239 nzdbr
$ cd ..
$ cd ..
$ cd wqvv
$ ls
120918 hchsfcp.clm
105770 nfhrd.tts
$ cd ..
$ cd ..
$ cd vjt
$ ls
dir crstpjjv
$ cd crstpjjv
$ ls
81225 fpwznlp.zsf
$ cd ..
$ cd ..
$ cd ..
$ cd wqvv
$ ls
72054 bcld.nwh
284293 cvsmmh
32684 ndgnz
130836 rlvcvj
233437 sbf.vcc
dir szwnlv
$ cd szwnlv
$ ls
133507 bnmhmpr.vww
This diff is collapsed.
Click to expand it.
7/sample.txt
0 → 100644
+
23
−
0
View file @
bcad0f95
$ cd /
$ ls
dir a
14848514 b.txt
8504156 c.dat
dir d
$ cd a
$ ls
dir e
29116 f
2557 g
62596 h.lst
$ cd e
$ ls
584 i
$ cd ..
$ cd ..
$ cd d
$ ls
4060174 j
8033020 d.log
5626152 d.ext
7214296 k
This diff is collapsed.
Click to expand it.
7/solve.hs
0 → 100644
+
56
−
0
View file @
bcad0f95
-- Day 7
{-# LANGUAGE MultiWayIf #-}
import
Data.List
import
Data.Char
cleanUpNav
::
[
String
]
->
[
String
]
cleanUpNav
=
filter
(
\
x
->
not
$
"$ cd .."
`
isInfixOf
`
x
)
getFilesInDir
::
[
String
]
->
[(
String
,
[
String
])]
getFilesInDir
[
x
]
=
[]
getFilesInDir
(
x1
:
_
:
xs
)
=
if
"cd"
`
isInfixOf
`
x1
then
(
getDirName
x1
"$ cd "
,
getUntilCommand
xs
)
:
getFilesInDir
xs
else
getFilesInDir
xs
getDirName
::
String
->
String
->
String
getDirName
x
prefix
=
if
prefix
`
isPrefixOf
`
x
then
last
$
words
x
else
""
getUntilCommand
::
[
String
]
->
[
String
]
getUntilCommand
[
x
]
=
[]
getUntilCommand
(
x
:
xs
)
=
if
head
x
/=
'$'
then
x
:
getUntilCommand
xs
else
[]
getFileSize
::
String
->
Int
getFileSize
=
read
.
head
.
words
nestedDirName
::
String
->
String
nestedDirName
=
last
.
words
findDir
::
String
->
[(
String
,
[
String
])]
->
(
String
,
[
String
])
findDir
n
=
head
.
filter
(
\
(
x
,
_
)
->
x
==
n
)
unwrapDir
::
String
->
[(
String
,
[
String
])]
->
[
String
]
unwrapDir
dirName
navStack
=
snd
$
findDir
dirName
navStack
filesInNestedDir
::
String
->
[(
String
,
[
String
])]
->
[
String
]
filesInNestedDir
x
stack
=
if
isAlpha
(
head
x
)
then
unwrapDir
(
getDirName
x
"dir "
)
stack
else
[
x
]
getTotalFilesForDir
::
[
String
]
->
[(
String
,
[
String
])]
->
[[
String
]]
getTotalFilesForDir
[
x
]
stack
=
[
filesInNestedDir
x
stack
]
getTotalFilesForDir
(
x
:
xs
)
stack
=
filesInNestedDir
x
stack
:
getTotalFilesForDir
xs
stack
test
::
[(
String
,
[
String
])]
->
[(
String
,
[[
String
]])]
test
stack
=
map
(
\
(
x
,
y
)
->
(
x
,
getTotalFilesForDir
y
stack
))
stack
parseInput
::
IO
[(
String
,
[
String
])]
parseInput
=
readFile
"./sample.txt"
>>=
return
.
getFilesInDir
.
cleanUpNav
.
lines
main
::
IO
()
main
=
undefined
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment