Scheme 宏一起重命名多个函数
以下语句可用于将“expt”函数重命名为“power”: 可以使用上述语句多次重命名多个函数 是否可以一次性重命名多个函数,例如重命名+、-、*和/以分别添加、sub、mul和div?当然Scheme 宏一起重命名多个函数,scheme,racket,Scheme,Racket,以下语句可用于将“expt”函数重命名为“power”: 可以使用上述语句多次重命名多个函数 是否可以一次性重命名多个函数,例如重命名+、-、*和/以分别添加、sub、mul和div?当然 #lang racket (define-syntax-rule (renamer [old new] ...) (begin (define-syntax new (make-rename-transformer #'old)) ...)) (renamer [expt power] [+ add]
#lang racket
(define-syntax-rule (renamer [old new] ...)
(begin (define-syntax new (make-rename-transformer #'old)) ...))
(renamer [expt power] [+ add] [- sub])
但正如@AlexisKing所说,它使用起来更方便
考虑使用<代码>重命名为< /代码>或<代码>重命名为< /代码>。
#lang racket
(define-syntax-rule (renamer [old new] ...)
(begin (define-syntax new (make-rename-transformer #'old)) ...))
(renamer [expt power] [+ add] [- sub])
#lang racket
(require
(rename-in racket/base
[expt power]
[+ add]))
(power 3 3) ;; 27