summary refs log tree commit diff stats
path: root/changelog.md
diff options
context:
space:
mode:
authorKonstantin Molchanov <moigagoo@live.com>2017-12-27 17:29:39 +0400
committerKonstantin Molchanov <moigagoo@live.com>2017-12-27 17:29:39 +0400
commita8b0a8a92da03593c3fe52dfbca8ee4eeed286d3 (patch)
tree385e67fe4f8bee37ef1e32052d24d41a5806548e /changelog.md
parentb592f069bbc2d30f11fd9414e149025653425dc0 (diff)
downloadNim-a8b0a8a92da03593c3fe52dfbca8ee4eeed286d3.tar.gz
Changelog: Document `toCountTable` behaviour change.
Diffstat (limited to 'changelog.md')
-rw-r--r--changelog.md29
1 files changed, 24 insertions, 5 deletions
diff --git a/changelog.md b/changelog.md
index 5734a4cb1..de4b2f251 100644
--- a/changelog.md
+++ b/changelog.md
@@ -146,7 +146,7 @@ This now needs to be written as:
 - Asynchronous programming for the JavaScript backend using the `asyncjs` module.
 - Extra semantic checks for procs with noreturn pragma: return type is not allowed,
   statements after call to noreturn procs are no longer allowed.
-- Noreturn proc calls and raising exceptions branches are now skipped during common type 
+- Noreturn proc calls and raising exceptions branches are now skipped during common type
   deduction in if and case expressions. The following code snippets now compile:
 ```nim
 import strutils
@@ -159,10 +159,29 @@ let b = case str:
   of nil, "": raise newException(ValueError, "Invalid boolean")
   elif str.startsWith("Y"): true
   elif str.startsWith("N"): false
-  else: false 
-let c = if str == "Y": true 
-  elif str == "N": false 
+  else: false
+let c = if str == "Y": true
+  elif str == "N": false
   else:
-    echo "invalid bool" 
+    echo "invalid bool"
     quit("this is the end")
 ```
+- Proc [toCountTable](https://nim-lang.org/docs/tables.html#toCountTable,openArray[A]) now produces a `CountTable` with values correspoding to the number of occurrences of the key in the input. It used to produce a table with all values set to `1`.
+
+Counting occurrences in a sequence used to be:
+
+```nim
+let mySeq = @[1, 2, 1, 3, 1, 4]
+var myCounter = initCountTable[int]()
+
+for item in mySeq:
+  myCounter.inc item
+```
+
+Now, you can simply do:
+
+```nim
+let
+  mySeq = @[1, 2, 1, 3, 1, 4]
+  myCounter = mySeq.toCountTable()
+```