]> git.deb.at Git - debienna.git/blobdiff - Archive/Kata4Lösungen/ScSh/index.mdwn
refactor some old sites
[debienna.git] / Archive / Kata4Lösungen / ScSh / index.mdwn
diff --git a/Archive/Kata4Lösungen/ScSh/index.mdwn b/Archive/Kata4Lösungen/ScSh/index.mdwn
new file mode 100644 (file)
index 0000000..fa940fb
--- /dev/null
@@ -0,0 +1,45 @@
+
+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]]