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]]