Brownian motion

around the essentials…

 

Публікації Tagged ‘scheme’

… я Схему би вивчив уже за одне: зі мною вона українською ;О)

(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)
...

… і користуватися ними. Але то вже занадто :О)

(No Ratings Yet)

“Но опыт есть!”

Я колись писав про видобування шматка лога FreeRadius (задача полягала у видобуванні тих фрагментів тексту між порожніми рядками, які містять рядки, що відповідають певному заданому регулярному виразу) — писав скрипт на awk та python і порівнював швидкодію.

Але з голови не йде LilyPond, тому закортіло спробувати те саме на scheme :O)

Ось перший млинець (справді перший, чессно,-):

» Читати далі — скрипт і коментарі… »

(No Ratings Yet)

Забагато тестів…

>>> (with-error-to-file (current-error-port) (display "foo"))
  File "", line 1
    (with-error-to-file (current-error-port) (display "foo"))
        ^
SyntaxError: invalid syntax
>>>

Намагаємося вчити Scheme, намагаємося працювати з Python…

Guile видає зовсім іншу помилку, я вже знаю ;О)

(No Ratings Yet)

lilypond: Переклад темпових позначок із Scheme

Lilypond — просто чудова система набору нот. Якщо вам подобається LaTeX для текстових (і не тільки) документів, вам обов’язково сподобається Lilypond — щойно у вас виникне потреба набрати двійко нот чи ж там оперу (якщо ж ви не знаєте, що таке LaTeX — у вас ще все попереду, я за вас радий!-).

Одна з головних, якщо не найголовніша, переваг Lilypond — можливість інтегрування у нотні документи фрагментів, написаних на Scheme: для визначення макросів, для програмування… чого завгодно, власне. Наприклад, ви можете зображувати «альтеровані» ноти різними кольорами, міняти розмір нот залежно від висоти звучання, чи робити корисніші речі — наприклад, визначати певні правила розставляння нагадувальних значків альтерації, створювати «шаблони» для текстових позначок, керувати з’єднанням восьмушок перекладинами тощо, тощо, тощо (моєї фантазії замало навіть для достойних прикладів).

У цій статті і покажу, як я керую перекладанням темпових позначок (Allegro, Moderato, Leggiero e calmo) з італійської на українську.

» Читати далі — код і коментарі… »

(No Ratings Yet)

Останні публікації

Most Rated

Highest Rated

Теґи

Архіви