Я могу использовать prefix-out
, чтобы переименовать мои экспортированные идентификаторы, чтобы все они имели аналогичный префикс. Например:`suffix-out` в Racket
#lang racket
(provide (prefix-out mymod: (all-defined-out)))
(define x 5)
(define y 6)
А теперь mymod:x
и mymod:y
должны быть привязаны к x
и y
внутри этого файла.
Есть ли аналогичный способ добавления суффикса ко всем идентификаторам, которые экспортирует модуль? Так что я могу сделать что-то вроде:
#lang racket
(provide (suffix-out -from-mymod (all-defined-out)))
(define x 5)
(define y 6)
И теперь любой модуль, который необходим этот бы x-from-mymod
и y-from-mymod
связаны с x
и y
в этом модуле.
Спасибо. Одна вещь, о которой мне на самом деле всегда интересовали, знаете ли вы, какая разница между «отфильтрованным» и «переименованием»? –
@LeifAndersen 'filter-out' является фактически' filter-map' над списком экспорта, но 'rename-out' является просто явным списком переименований. То есть, первые могут работать над произвольным набором экспорта, но «переименование» перечисляет их по одному. Эти два более близких отношения - это «переименование» и «только-выход»; первый экспортирует все и переименовывает перечисленные идентификаторы, но 'only-out' экспортирует только те идентификаторы, которые вы явно перечисляете. –
А, да, это имеет смысл. Спасибо.^_ ^ –