--- /dev/null
+
+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.
+
+
+[[!format txt """
+#!/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))))))
+"""]]
+
+
+ [[!tag CategoryCodeSnippets]]