das ist direkt version 3.
schritt eins war sehr hart. musste noch viel scheme zeug lernen. 2 und 3 war eher piece of cake ;)
FIXME: die zeilen bevor die daten anfangen, hab ich einfach rausgeloescht, das koennte besser sein. FIXME: ich glaub file einlesen koennte einfacher gehen.
#!/usr/bin/scsh \
-o big-scheme -s
!#
(define (datamunge file comment resulter comparer)
(begin
(display comment)
(display
(car
(sort-list
(call-with-input-file file
(lambda (port)
(awk ((field-reader (field-splitter (rx (+ (~ white "*" "-"))))) port)
(record fields)
((resultlist (list)))
(else
(cons (list (resulter fields)
(comparer fields))
resultlist)))))
(lambda (a b)
(< (cadr a) (cadr b))))))
(newline)))
(datamunge "/home/lefant/scheme/code/kata04_data1.txt" "weather"
car
(lambda (alist) (- (string->number (list-ref alist 1))
(string->number (list-ref alist 2)))))
(datamunge "/home/lefant/scheme/code/kata04_data2.txt" "soccer"
cadr
(lambda (alist) (abs (- (string->number (list-ref alist 6))
(string->number (list-ref alist 7))))))