Scheme 宏一起重命名多个函数

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]

以下语句可用于将“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] [- 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