Toon posts:

[scheme] file to list (forward naar andere procedure)

Pagina: 1
Acties:

Verwijderd

Topicstarter
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.

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 :?

Verwijderd

Topicstarter
Kheb m werkend gekregen so nevermind :)

code:
1
2
3
4
5
6
7
8
(define (file2bubblelist filename)
  (let ((p (open-input-file filename)))
    (let f ((x (read p)))
      (if (eof-object? x)
        ()
        (cons x (f (read p)))))))

(bubblesort (file2bubblelist "bubble-input.txt"))