-
Notifications
You must be signed in to change notification settings - Fork 0
Samples
dmishin edited this page Sep 14, 2010
·
5 revisions
Here is a sample Python code, producing infinite list of Fibonacchi numbers and corresponding C++ code with pseudo-generator:
def fibonacchi():
"Generator, yielding infinite list of fibonacchi numbers"
f0 = 1
f1 = 1
while True:
yield f0
f0, f1 = f1, f0+f1
#Sample usage of the above generator:
#Printing all fibonacchi numbers below 1000
for f in fibonacchi():
print f
if f > 1000:
break
C++ analog with pseudo_generator
#include "pseudo_generator.hpp"
struct fibonacchi: generator< int >
{
int f0, f1;
int operator()();
}
int fibonacchi::operator()()
{
DECLARE_GEN1 ( state1 );
f0 = 1;
f1 = 1;
while( true ){
YIELD ( f0, state1 );
int f2 = f0 + f1;
f0 = f1;
f1 = f2;
}
END_GENERATOR;
return -1; //Dummy return to suppress warning.
}
//Sample usage
int main( int argc, char* argv[] )
{
using namespace std;
fibonacchi gen;
for( int x; gen >> x; ){
cout << x << endl;
if ( x > 1000 )
break;
}
return 0;
}