コード例 #1
0
ファイル: Test.cpp プロジェクト: Chilledheart/Okasaki
void printQ(Queue<T> const & q)
{
    std::cout << "Front " << q.lenF() << ": ";
    lazyPrint(q.fStream());
    std::cout << "Rear  " << q.lenR() << ": ";
    lazyPrint(q.rStream());
    std::cout << std::endl;
}
コード例 #2
0
ファイル: Test.cpp プロジェクト: Chilledheart/Okasaki
Stream<int> test1()
{
    Stream<int> s0;
    Stream<int> s1(1, s0);
    lazyPrint(s1);
    Stream<int> s2(2, s1);
    Stream<int> s3(3, s2);
    Stream<int> s4(4, s3);
    std::cout << s1.get() << std::endl;
    lazyPrint(s4);
    return s4;
}
コード例 #3
0
ファイル: Test.cpp プロジェクト: AsAddict/Okasaki
void main()
{
    forcePrint(testZip());
    std::cout << testUnit() << std::endl;
    auto s = testCat();
    lazyPrint(s);
    forcePrint(s);
}
コード例 #4
0
ファイル: Test.cpp プロジェクト: Chilledheart/Okasaki
Stream<int> test3()
{
    auto s4 = test1();
    auto rv = s4.reverse();
    std::cout << "Reversed\n";
    lazyPrint(rv);
    forcePrint(rv);
    auto cat = concat(s4, rv);
    return cat;
}
コード例 #5
0
ファイル: Test.cpp プロジェクト: Chilledheart/Okasaki
Stream<int> test()
{
    auto cat = test3();
    Stream<int> s(10, cat);
    std::cout << "Cat + 10\n";
    lazyPrint(s);
    forcePrint(s);
    auto t2 = cat.take(5);
    return t2;
}
コード例 #6
0
ファイル: Test.cpp プロジェクト: Chilledheart/Okasaki
void lazyPrint(Stream<T> const & s)
{
    if (s.isEmpty())
    {
        std::cout << std::endl;
    }
    else if (s.isForced())
    {
        T v = s.get();
        auto tail = s.pop_front();
        std::cout << v << " ";
        lazyPrint(tail);
    }
    else
    {
        std::cout << "?\n";
    }
}