Momenteel ben ik verder aan het oefenen met Scheme in de editor DrScheme, het lezen van een .txt file naar een list om de gevulde list vervolgens mee te geven aan een volgende procedure.
Aanroep file2bubblelist: (file2bubblelist "bubble-input.txt")
Aanroep bubblesort: (bubblesort (list 12 90 34 23 9 10 80 66 38))
Nu staan dus de cijfers: 12 90 34 23 9 10 80 66 38
in bubble-input.txt en wil ik deze uit laten lezen en doorgeven aan bubblesort.
Als ik de bovenstaande code uitvoer, leest hij netjes de cijfers uit de file in,
zet deze op het scherm maar geeft ze niet door aan de bubblesort zodat
deze ze netjes kan sorteren.
Verder had ik geprobeerd de ;then te vervangen door:
(bubblesort (x)) ;then
Maar dan krijg ik een error betreffende: expected procedure #<eof> (no arguments)
Heeft iemand enig idee wat ik fout doe
code:
1
2
3
4
5
6
| (define (file2bubblelist filename)
(let ((p (open-input-file filename)))
(let f ((x (read p)))
(if (eof-object? x)
(bubblesort ()) ;then
(cons x (f (read p))))))) ;else |
Aanroep file2bubblelist: (file2bubblelist "bubble-input.txt")
Aanroep bubblesort: (bubblesort (list 12 90 34 23 9 10 80 66 38))
Nu staan dus de cijfers: 12 90 34 23 9 10 80 66 38
in bubble-input.txt en wil ik deze uit laten lezen en doorgeven aan bubblesort.
Als ik de bovenstaande code uitvoer, leest hij netjes de cijfers uit de file in,
zet deze op het scherm maar geeft ze niet door aan de bubblesort zodat
deze ze netjes kan sorteren.
Verder had ik geprobeerd de ;then te vervangen door:
(bubblesort (x)) ;then
Maar dan krijg ik een error betreffende: expected procedure #<eof> (no arguments)
Heeft iemand enig idee wat ik fout doe