summaryrefslogtreecommitdiff
path: root/letter_table.kpl
diff options
context:
space:
mode:
Diffstat (limited to 'letter_table.kpl')
-rw-r--r--letter_table.kpl26
1 files changed, 26 insertions, 0 deletions
diff --git a/letter_table.kpl b/letter_table.kpl
new file mode 100644
index 0000000..29856b0
--- /dev/null
+++ b/letter_table.kpl
@@ -0,0 +1,26 @@
+
+// Read a utf8 string and count all the occurrences of each letter found
+
+`export letter_table : ([string]
+ table : Map[Char; U64] $ ()
+ @ string {[letter]
+ ? table `has letter {
+ ^ table `get letter {[count] count +: 1 }
+ } {
+ table `set (letter; 1)
+ }
+ }
+ table
+)
+
+`is_main ([]
+ `use "sys" [args]
+ ? 3 != `length args {
+ `return `error String $ (
+ "#BOLD#RED#Got: %#\n" `format " " `join args
+ "#BOLD#WHITE#Usage: % % <file>#\n" `format (args `get 0; args `get 1)
+ )
+ }
+ `use "file" [open; read]
+ `log letter_table `sync String $ read `sync open `sync args `get -1
+)