;;; -*- Hen -*- ;;;; levenshtein-print.scm ;;;; Kon Lovett, Sep 16 2005 ;;;; Kon Lovett, Apr 2012 (module levenshtein-print (;export print-levenshtein-matrix) (import scheme chicken) (use levenshtein-operators numeric-macros format-compiler numbers srfi-63 type-checks type-errors) ;;; (define (strict-array? obj) (and (array? obj) (not (string? obj)) (not (vector? obj)))) ;;; (define (print-levenshtein-matrix pm) (if (not (and (strict-array? pm) (fx= 2 (array-rank pm)))) (error-argument-type 'print-levenshtein-matrix pm "rank 2 array" "path-matrix") (let ((dims (array-dimensions pm))) (let ((n (fx-- (car dims))) (m (fx-- (cadr dims))) ) (do ((i 0 (fx++ i))) ((fx> i n)) (do ((j 0 (fx++ j))) ((fx> j m)) (let ((elm (array-ref pm i j))) (if elm (format #t "(~2A ~10A) " (car elm) (levenshtein-operator-key (cdr elm))) (format #t "~15A " elm)))) (format #t "~%") ) ) ) ) ) #| (use array-lib-hof format-modular levenshtein-vector) (define (print-levenshtein-matrix pm) (array-for-each-index (lambda (i j) (when (zero? j) (format #t "~%")) (let ((elm (array-ref pm i j))) (if elm (format #t "(~2A ~10A) " (car elm) (levenshtein-operator-key (cdr elm))) (format #t "~15A " elm)))) pm) (format #t "~%") ) |# ) ;module levenshtein-print