Next to the basic types, there are the normal things that we can expect from scripting languages. As colm is static and strong typed, it is very convenient to use alias as well.
An example is probably much clearer then 1000 loc.
poker.md
alias Value_t map<int,str>
values:Value_t = new Value_t()
values->insert(0, "Ace")
values->insert(1, "1")
values->insert(2, "2")
values->insert(3, "3")
values->insert(4, "4")
values->insert(5, "5")
values->insert(6, "6")
values->insert(7, "7")
values->insert(8, "8")
values->insert(9, "9")
values->insert(10, "Ten")
values->insert(11, "Jack")
values->insert(12, "Queen")
values->insert(13, "King")
alias Suit_t map<int,str>
suit:Suit_t = new Suit_t()
suit->insert(1, "hearts")
suit->insert(2, "spades")
suit->insert(3, "diamonds")
suit->insert(4, "clubs")
struct Card_t
s:int
v:int
end
alias Hand_t list<Card_t>
struct Person_t
name:str
age:int
hand:Hand_t
end
john:Person_t
john = new Person_t()
john->name = "john"
john->age = 18
john->hand = new Hand_t()
card:Card_t = new Card_t()
card->s = 2
card->v = 13
john->hand->push(card)
print("ok ", john->name, " ", john->age, "\n")
for card:Card_t in john->hand {
print("\n\t", suit->find(card->s), " ", values->find(card->v), "\n")
}
When we run this we get:
ok john 18 spades King
![]() |
this also illustrates how to iterate through a list and access elements in a map. |