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