Как создать список и вернуть его в clojure?

Я все еще изучаю эту инопланетную функциональную парадигму...

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

usernames = []
# just the usernames of all the connections I want to open.
cancelfunctions = {}
# this global contains anonymous functions to cancel connections, keyed by username

def cancelAll():
    for cancel in cancelfunctions.values():
        cancel()

def reopenAll():
    cancelfunctions = {}
    for name in usernames:
        # should return a function to close the connection and put it in the dict.
        cancelfunctions[name] = openConnection()

Все, что мне действительно нужно знать, это как создать новый список обратных вызовов, как в функции reopenAll, но я включаю сюда еще немного контекста, потому что есть вероятность, что я совершаю какое-то злодеяние функциональной парадигмы, и вы, скорее всего, скорее всего хотят исправить всю программу.:)

5
задан Steven Rumbalski 13 August 2012 в 19:15
поделиться