В Clojure я строю карточную игру.Карты имеют масти и очки.
{:suit 1 :score 9}
Карты создаются с использованием диапазонов, например (range suitTotal), поэтому класс значений: suit и: score имеет значение Long.Игроки посылают командные строки, например «discard1.9» - это запрос на сброс.Использование регулярного выражения для анализа этого:
(re-seq #"[0-9]+" command)
приводит к строковым элементам "1" и "9".Карта, созданная с этими результатами, будет
{:suit "1" :score "9"}
. Я бы хотел сравнить ее с исходной картой.В настоящее время я использую (Integer / parseInt) для преобразования строк.
Значение масти может быть построено из другого типа, например из ключевого слова, но значение оценки используется как число в другом месте.