C++ 編碼庫:FunctionalPlus

nbby 9年前發布 | 7K 次閱讀 C/C++開發 FunctionalPlus

FunctionalPlus 是一個小的表頭庫,它可以降低代碼噪聲,一次只處理一個單一等級的的抽象對象。通過增加你的代碼的簡潔性和可維護性來提高生產效率和編碼樂趣。從長遠的角度來看,它可以通過提供易于使用的功能將你從實現控制的流中解放出來。

示例代碼:

#include "FunctionalPlus/FunctionalPlus.h"#include <iostream>
// std::list<std::uint64_t> CollatzSeq(std::uint64_t x) { ... }int main()
{    using namespace FunctionalPlus;
    using namespace std;

    typedef list<uint64_t> Ints;    
    // [1, 2, 3 ... 29]
    auto numbers = GenerateIntegralRange<Ints>(1, 30);    
    // A function that does [1, 2, 3, 4, 5] -> "[1 => 2 => 3 => 4 => 5]"
    auto ShowInts = Bind1of2(ShowContWith<Ints>, " => ");    
    // A composed function that calculates a Collatz sequence and shows it.
    auto ShowCollatsSeq = Compose(CollatzSeq, ShowInts);    
    // Apply it to all our numbers.
    auto seqStrs = Transform(ShowCollatsSeq, numbers);    
    // Combine the numbers and their sequence representations into a map.
    auto collatzDict = CreateMap(numbers, seqStrs);    
    // Print some of the sequences.
    cout << collatzDict[13] << endl;
    cout << collatzDict[17] << endl;
}

項目主頁:http://www.baiduhome.net/lib/view/home/1448886348170

 本文由用戶 nbby 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!