📄 match.scm
字号:
(if (null? g162) (if (and (list? (cddr args)) (pair? (cddr args))) ((lambda (name pat exp body) (if (##match#every (cadddr ##match#expanders) pat) `(let ,@args) `(letrec ((,name (match-lambda* (,pat ,@body)))) (,name ,@exp)))) (car args) (reverse g159) (reverse g160) (cddr args)) (g146)) (if (and (pair? (car g162)) (pair? (cdar g162)) (null? (cddar g162))) (g161 (cdr g162) (cons (cadar g162) g160) (cons (caar g162) g159)) (g146)))) (g146)) (if (list? (car args)) (if (##match#every (lambda (g167) (if (and (pair? g167) (g136 (car g167)) (pair? (cdr g167))) (null? (cddr g167)) #f)) (car args)) (if (and (list? (cdr args)) (pair? (cdr args))) ((lambda () `(let ,@args))) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (g146) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (if (and (pair? (car args)) (pair? (caar args)) (pair? (cdaar args)) (null? (cddaar args))) (if (null? (cdar args)) (if (and (list? (cdr args)) (pair? (cdr args))) (g158 (caaar args) (cadaar args) (cdr args)) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (g146) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (if (and (pair? (cdar args)) (pair? (cadar args)) (pair? (cdadar args)) (null? (cdr (cdadar args))) (null? (cddar args))) (if (and (list? (cdr args)) (pair? (cdr args))) (g145 (caaar args) (cadaar args) (caadar args) (car (cdadar args)) (cdr args)) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (g146) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (if (and (list? (cdr args)) (pair? (cdr args))) (g154 (reverse g147) (reverse g148) (cdr args)) (g146)) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146)))))) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (if (and (list? (cdr args)) (pair? (cdr args))) (g154 (reverse g147) (reverse g148) (cdr args)) (g146)) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146)))))) (if (pair? (car args)) (if (and (pair? (caar args)) (pair? (cdaar args)) (null? (cddaar args))) (if (null? (cdar args)) (if (and (list? (cdr args)) (pair? (cdr args))) (g158 (caaar args) (cadaar args) (cdr args)) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (g146) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (if (and (pair? (cdar args)) (pair? (cadar args)) (pair? (cdadar args)) (null? (cdr (cdadar args))) (null? (cddar args))) (if (and (list? (cdr args)) (pair? (cdr args))) (g145 (caaar args) (cadaar args) (caadar args) (car (cdadar args)) (cdr args)) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (g146) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (if (and (list? (cdr args)) (pair? (cdr args))) (g154 (reverse g147) (reverse g148) (cdr args)) (g146)) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146)))))) (let g149 ((g150 (car args)) (g148 '()) (g147 '())) (if (null? g150) (if (and (list? (cdr args)) (pair? (cdr args))) (g154 (reverse g147) (reverse g148) (cdr args)) (g146)) (if (and (pair? (car g150)) (pair? (cdar g150)) (null? (cddar g150))) (g149 (cdr g150) (cons (cadar g150) g148) (cons (caar g150) g147)) (g146))))) (g146)))) (g146))))(define-macro (match-let* . args) (let ((g176 (lambda () (##match#syntax-err `(match-let* ,@args) "syntax error in")))) (if (pair? args) (if (null? (car args)) (if (and (list? (cdr args)) (pair? (cdr args))) ((lambda (body) `(let* ,@args)) (cdr args)) (g176)) (if (and (pair? (car args))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -