История изменений
Исправление Flogger_d, (текущая версия) :
Неа... Не работаеть...
ERROR: extra ellipsis in syntax form (syntax (let ((match-str (string-match pattern sample))) (and match-str (let ((ser-num (natural-seq))) (let ((idx #) (range #) (val #)) (set! match val) #t) ...))))
Вообще - вот эта конструкция какая-то стремная:
(set! match val) #t) ...
Там же по идее - должен быть список идентификаторов переменных, куда надо разложить заматченные куски из sample. Т.е.:
(define match "")
(define lyrName "")
(define text "LAYER M1")
(define pattern "LAYER ([a-zA-Z][a-zA-Z0-9_]*)")
(if (match-vars pattern text match lyrName)
(format #t "Recognized layer name: '~a'\n" lyrName)
(format #t "Fail\n"))
Т.е. список идентификаторов должен синтаксическим рулом быть развернут в совокупность (set! var_i val_i) - вопрос именно - как это сделать....
Исходная версия Flogger_d, :
Неа... Не работаеть...
ERROR: extra ellipsis in syntax form (syntax (let ((match-str (string-match pattern sample))) (and match-str (let ((ser-num (natural-seq))) (let ((idx #) (range #) (val #)) (set! match val) #t) ...))))
Вообще - вот эта конструкция какая-то стремная:
(set! match val) #t) ...
Там же по идее - должен быть список идентификаторов переменных, куда надо разложить заматченные куски из sample. Т.е.:
(define match "")
(define lyrName "")
(define text "LAYER M1")
(define pattern "LAYER ([a-zA-Z][a-zA-Z0-9_]*)")
(if (match-vars pattern text match lyrName)
(format #t "Reconized layer name: '~a'\n" lyrName)
(format #t "Fail\n"))
Т.е. список идентификаторов должен синтаксическим рулом быть развернут в совокупность (set! var_i val_i) - вопрос именно - как это сделать....