From 5e2614a7d63647ece5774725a85e9482b9f02057 Mon Sep 17 00:00:00 2001 From: def Date: Wed, 23 Jul 2014 15:47:46 +0200 Subject: Add newSeqWith --- lib/system.nim | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib') diff --git a/lib/system.nim b/lib/system.nim index 2fb08563a..96c611282 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -476,6 +476,23 @@ proc newSeq*[T](len = 0): seq[T] = ## #inputStrings[3] = "out of bounds" newSeq(result, len) +template newSeqWith*(len: int, init: expr): expr = + ## creates a new sequence, calling `init` to initialize each value. Example: + ## + ## .. code-block:: nimrod + ## var seq2D = newSeqWith(20, newSeq[bool](10)) + ## seq2D[0][0] = true + ## seq2D[1][0] = true + ## seq2D[0][1] = true + ## + ## import math + ## var seqRand = newSeqWith(20, random(10)) + ## echo seqRand + var result {.gensym.} = newSeq[type(init)](len) + for i in 0 .. Date: Mon, 11 Aug 2014 21:05:21 +0200 Subject: Move newSeqWith to sequtils --- lib/pure/collections/sequtils.nim | 24 ++++++++++++++++++++++++ lib/system.nim | 17 ----------------- 2 files changed, 24 insertions(+), 17 deletions(-) (limited to 'lib') diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index c50c4165b..2629e9f40 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -409,6 +409,23 @@ template mapIt*(varSeq, pred: expr) = let it {.inject.} = varSeq[i] varSeq[i] = pred +template newSeqWith*(len: int, init: expr): expr = + ## creates a new sequence, calling `init` to initialize each value. Example: + ## + ## .. code-block:: nimrod + ## var seq2D = newSeqWith(20, newSeq[bool](10)) + ## seq2D[0][0] = true + ## seq2D[1][0] = true + ## seq2D[0][1] = true + ## + ## import math + ## var seqRand = newSeqWith(20, random(10)) + ## echo seqRand + var result {.gensym.} = newSeq[type(init)](len) + for i in 0 ..