2 das ist direkt version 3.
4 schritt eins war sehr hart. musste noch viel scheme zeug lernen. 2 und 3 war eher piece of cake ;)
6 FIXME: die zeilen bevor die daten anfangen, hab ich einfach rausgeloescht, das koennte besser sein. FIXME: ich glaub file einlesen koennte einfacher gehen.
14 (define (datamunge file comment resulter comparer)
20 (call-with-input-file file
22 (awk ((field-reader (field-splitter (rx (+ (~ white "*" "-"))))) port)
26 (cons (list (resulter fields)
30 (< (cadr a) (cadr b))))))
33 (datamunge "/home/lefant/scheme/code/kata04_data1.txt" "weather"
35 (lambda (alist) (- (string->number (list-ref alist 1))
36 (string->number (list-ref alist 2)))))
38 (datamunge "/home/lefant/scheme/code/kata04_data2.txt" "soccer"
40 (lambda (alist) (abs (- (string->number (list-ref alist 6))
41 (string->number (list-ref alist 7))))))
45 [[!tag CategoryCodeSnippets]]