summaryrefslogtreecommitdiff
path: root/examples/collections/word_freq.zc
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-16 10:22:05 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-16 10:28:25 +0000
commit489c393d47ac42dee939e741b732958b082539a7 (patch)
tree9f5619374f605bd276d78ccc5e793a6433ffa6fc /examples/collections/word_freq.zc
parent46b0cfd792a2187d8984f55b9cf59493ec078239 (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.zc35
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}";
+ }
+ }
+}