(use-modules (ice-9 rdelim)) (use-modules (ice-9 regex)) (define конфігфайл "ZyXEL.confg") (define конфіг (open-input-file конфігфайл)) (define (знайти-влани) (let повторити ((вже-знайдені '()) (влан #f)) (if (not (eof-object? (peek-char конфіг))) (let ((рядок (string-trim-both (read-line конфіг)))) (if (not влан) (if (string-match "vlan" рядок) (set! влан (list-ref (string-tokenize рядок) 1))) (begin (if (string-match "fixed" рядок) (set! вже-знайдені (append вже-знайдені (list влан)))) (if (string-match "exit" рядок) (set! влан #f)))) (повторити вже-знайдені влан)) вже-знайдені))) (display (string-join (знайти-влани) ",")) |
Звісно, можна також:
(define якщо if) (define стань! set!) (define зліпити-у-рядок string-join) ... |
… і користуватися ними. Але то вже занадто :О)