From Bartosz Milewski’s What Does Haskell Have to Do with C++?: Haskell style list comprehensions of the form

```
one x = 1
count lst = sum [one x | x <- lst]
```

can be written in modern C++ like so:

```
template<class T> struct
one {
static const int value = 1;
};
template<class... lst> struct
count {
static const int value = sum<one<lst>::value...>::value;
};
```

The author calls out the comparison between `one<lst>::value...`

and `[one x | x <- lst]`

. I’ve used packs like this before, but looking at this juxtaposition was a revelation.