parent
e600ddc555
commit
5caaa4bf6f
1 changed files with 7 additions and 7 deletions
|
|
@ -843,8 +843,7 @@ template foldl*(sequence, operation, first): untyped =
|
||||||
digits = foldl(numbers, a & (chr(b + ord('0'))), "")
|
digits = foldl(numbers, a & (chr(b + ord('0'))), "")
|
||||||
assert digits == "0815"
|
assert digits == "0815"
|
||||||
|
|
||||||
var result: typeof(first)
|
var result: typeof(first) = first
|
||||||
result = first
|
|
||||||
for x in items(sequence):
|
for x in items(sequence):
|
||||||
let
|
let
|
||||||
a {.inject.} = result
|
a {.inject.} = result
|
||||||
|
|
@ -883,11 +882,11 @@ template foldr*(sequence, operation: untyped): untyped =
|
||||||
assert multiplication == 495, "Multiplication is (5*(9*(11)))"
|
assert multiplication == 495, "Multiplication is (5*(9*(11)))"
|
||||||
assert concatenation == "nimiscool"
|
assert concatenation == "nimiscool"
|
||||||
|
|
||||||
let s = sequence
|
let s = sequence # xxx inefficient, use {.evalonce.} pending #13750
|
||||||
assert s.len > 0, "Can't fold empty sequences"
|
let n = s.len
|
||||||
var result: typeof(s[0])
|
assert n > 0, "Can't fold empty sequences"
|
||||||
result = sequence[s.len - 1]
|
var result = s[n - 1]
|
||||||
for i in countdown(s.len - 2, 0):
|
for i in countdown(n - 2, 0):
|
||||||
let
|
let
|
||||||
a {.inject.} = s[i]
|
a {.inject.} = s[i]
|
||||||
b {.inject.} = result
|
b {.inject.} = result
|
||||||
|
|
@ -1436,6 +1435,7 @@ when isMainModule:
|
||||||
assert subtraction == 7, "Subtraction is (5-(9-(11)))"
|
assert subtraction == 7, "Subtraction is (5-(9-(11)))"
|
||||||
assert multiplication == 495, "Multiplication is (5*(9*(11)))"
|
assert multiplication == 495, "Multiplication is (5*(9*(11)))"
|
||||||
assert concatenation == "nimiscool"
|
assert concatenation == "nimiscool"
|
||||||
|
doAssert toSeq(1..3).foldr(a + b) == 6 # issue #14404
|
||||||
|
|
||||||
block: # mapIt + applyIt test
|
block: # mapIt + applyIt test
|
||||||
counter = 0
|
counter = 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue