]> git.deb.at Git - debienna.git/blob - Kata4Lösungen/ScSh/index.mdwn
use unix newlines everywhere
[debienna.git] / Kata4Lösungen / ScSh / index.mdwn
1 das ist direkt version 3.
2
3 schritt eins war sehr hart. musste noch viel scheme zeug lernen. 2 und 3 war eher piece of cake ;)
4
5 FIXME: die zeilen bevor die daten anfangen, hab ich einfach rausgeloescht, das koennte besser sein.
6 FIXME: ich glaub file einlesen koennte einfacher gehen.
7
8 {{{
9 #!/usr/bin/scsh \
10 -o big-scheme -s
11 !#
12
13 (define (datamunge file comment resulter comparer)
14   (begin
15     (display comment)
16     (display
17      (car
18       (sort-list
19        (call-with-input-file file
20          (lambda (port)
21            (awk ((field-reader (field-splitter (rx (+ (~ white "*" "-"))))) port)
22                 (record fields)
23                 ((resultlist (list)))
24                 (else
25                  (cons (list (resulter fields)
26                              (comparer fields))
27                        resultlist)))))
28        (lambda (a b)
29          (< (cadr a) (cadr b))))))
30     (newline)))
31
32 (datamunge "/home/lefant/scheme/code/kata04_data1.txt" "weather"
33            car
34            (lambda (alist) (- (string->number (list-ref alist 1))
35                               (string->number (list-ref alist 2)))))
36
37 (datamunge "/home/lefant/scheme/code/kata04_data2.txt" "soccer"
38            cadr
39            (lambda (alist) (abs (- (string->number (list-ref alist 6))
40                                    (string->number (list-ref alist 7))))))
41 }}}
42 ----
43 CategoryCodeSnippets