Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Clojure - Примеры28 апреля 2011Оглавление: 1. Clojure 2. Макросы 3. Примеры Hello world: Потокобезопасный генератор уникальных серийных номеров:
]
(defn generate-unique-id
"Возвращает различные числовые ID для каждого вызова."
))
Анонимный подкласс
(def bit-bucket-writer
(proxy
))
(defmacro noprint
"Вычисляет заданные выражения, заглушая весь *вывод* на экран".
`(binding
~@forms))
(noprint
)
10 потоков, манипулирующих одной общей структурой данных, которая состоит из 100 векторов, каждый из которых содержит 10 уникальных чисел. Каждый поток многократно выбирает две случайных позиции в двух случайных векторах и обменивает местами их значения. Все изменения векторов происходят в единой транзакции путем использования системы транзакционной памяти clojure. Поэтому даже после 1000 итераций в каждом из потоков числа не теряются.
(defn run
))))
swap #
v2
i1
i2 ]
(dosync
i1)]
assoc i1 i2))
assoc i2 temp))))
report #(do
)
(println "Distinct:"
)))))]
))))
))
Вывод предыдущего примера: ( ... ) Distinct: 1000 ( ... ) Distinct: 1000 Просмотров: 2913
|