[nim-dev] foldl/foldr in sequtils

  • From: OderWat <nimforum@xxxxxxxxxx>
  • To: nim-dev@xxxxxxxxxxxxx
  • Date: Wed, 28 Oct 2015 19:17:42 +0000

By the way... why didn't we add something likes this already:

```nim
# foldl with initial (type giving) parameter
template foldl(sequence, operation: expr, first): expr =
var result {.gensym.}: type(first)
result = first
for i in countup(0, sequence.len - 1):
let
a {.inject.} = result
b {.inject.} = sequence[i]
result = operation
result

var e: seq[int] = @[]

var foldl_res2 = foldl( e, "(" & $a & "+" & $b & ")", "0")
echo foldl_res2

var foldl_res3 = foldl( @[1,2,3,4,5], "(" & $a & "+" & $b & ")", "0")
echo foldl_res3
```

I was thinking about doing a PR for this (and similar foldr), just wonder why
nobody did it so far?

Other related posts: