Что такое закрытый эквивалент идиомы Python «if __name__ == '__main__'»?

Я балуюсь clojure и испытываю небольшие затруднения, пытаясь определить clojure (и / или Lisp) эквивалент этой распространенной идиомы Python.

Идиома состоит в том, что в нижней части модуля python часто есть немного тестового кода, а затем оператор, который выполняет код, например:

# mymodule.py
class MyClass(object):
    """Main logic / code for the library lives here"""
    pass

def _runTests():
    # Code which tests various aspects of MyClass...
    mc = MyClass() # etc...
    assert 2 + 2 == 4

if __name__ == '__main__': _runTests()

Это полезно для простого специального тестирования. Можно было бы использовать этот модуль, написавfrom mymodule import MyClass, в таком случае_runTests() никогда не вызывается, но с фрагментом в конце его также можно запустить, набравpython mymodule.py прямо из командной строки.

Есть ли эквивалентная идиома в Clojure (и / или общий лисп)? Я не за полнофункциональной библиотекой модульного тестирования (да, но не в этом вопросе), я просто хотел бы включить некоторый код в модуль, который будет запускаться только при определенных обстоятельствах, так что я могу иметь быстрый способ запуска кода, над которым я работал, но все же позволяющий импортировать мой файл как обычный модуль / пространство имен.

Ответы на вопрос(8)

Ваш ответ на вопрос