diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-16 10:22:05 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-16 10:28:25 +0000 |
| commit | 489c393d47ac42dee939e741b732958b082539a7 (patch) | |
| tree | 9f5619374f605bd276d78ccc5e793a6433ffa6fc /examples/collections/word_freq.zc | |
| parent | 46b0cfd792a2187d8984f55b9cf59493ec078239 (diff) | |
Fixed bug related to 'defer' and added some examples.
Diffstat (limited to 'examples/collections/word_freq.zc')
| -rw-r--r-- | examples/collections/word_freq.zc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/collections/word_freq.zc b/examples/collections/word_freq.zc new file mode 100644 index 0000000..781842c --- /dev/null +++ b/examples/collections/word_freq.zc @@ -0,0 +1,35 @@ + +import "std/map.zc" + +fn main() { + var text = "apple banana apple cherry banana apple"; + var delim = " "; + + var counts = Map<int>::new(); + defer counts.free(); + + var temp = strdup(text); + defer free(temp); + + var token = strtok(temp, delim); + while token != NULL { + if counts.contains(token) { + var val = counts.get(token).unwrap(); + counts.put(token, val + 1); + } else { + counts.put(token, 1); + } + token = strtok(NULL, delim); + } + + "Word Frequencies:"; + "-----------------"; + + for i in 0..counts.capacity() { + if counts.is_slot_occupied(i) { + var k = counts.key_at(i); + var v = counts.val_at(i); + println "{k}: {v}"; + } + } +} |
