1213b086a1
Change-Id: I9636a41ad44b4218293833fd3e9456d9b07c731b
34 lines
961 B
C++
34 lines
961 B
C++
//
|
|
// immer: immutable data structures for C++
|
|
// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente
|
|
//
|
|
// This software is distributed under the Boost Software License, Version 1.0.
|
|
// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt
|
|
//
|
|
|
|
#include <immer/vector.hpp>
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
// include:fizzbuzz/start
|
|
immer::vector<std::string>
|
|
fizzbuzz(immer::vector<std::string> v, int first, int last)
|
|
{
|
|
for (auto i = first; i < last; ++i)
|
|
v = std::move(v).push_back(
|
|
i % 15 == 0 ? "FizzBuzz"
|
|
: i % 5 == 0 ? "Bizz"
|
|
: i % 3 == 0 ? "Fizz" :
|
|
/* else */ std::to_string(i));
|
|
return v;
|
|
}
|
|
// include:fizzbuzz/end
|
|
|
|
int main()
|
|
{
|
|
auto v = fizzbuzz({}, 0, 100);
|
|
std::copy(v.begin(),
|
|
v.end(),
|
|
std::ostream_iterator<std::string>{std::cout, "\n"});
|
|
}
|