MFR: リスト/連想配列操作用のJSL関数型プログラミング・ライブラリこのヘルパー ライブラリは、大規模な JSL フレームワークの作業中に開発しました。 リストをトラバースするために n 番目の For() ループをコーディングした後 (そしてインデックス変数の意図しない破壊に関連する多くのバグを修正した後)、より高い関数型プログラミングで一般的に使用されるようなレベルの抽象化。
このライブラリは、Python や JavaScript などの言語で利用できるトリオ map/filter/reduce に加えて、apply、reduce、compare などのいくつかを実装しています。 に触発されましたhttp://book.pythontips.com/en/latest/map_filter.html .
使用例のテストを確認し、バグや改善方法を見つけたらお知らせください。
MFR (Map-Filter-Reduce から) は、JSL の関数型プログラミング プリミティブのライブラリです。
基本的なテストが含まれています。
に触発されたhttp://book.pythontips.com/en/latest/map_filter.html
分析アプリケーション開発ユーティリティRe: MFR: リスト/連想配列操作のための JSL 関数型プログラミング ライブラリありがとう、 @jcperkins12 . お役に立てば幸いです。
Re: MFR: リスト/連想配列操作のための JSL 関数型プログラミング ライブラリこれは、本質的に提供するものと、JSL での抽象化のテンプレートの両方に優れています。 これを投稿していただきありがとうございます。
Re: MFR: JSL の関数型プログラミング ライブラリ更新 (2019 年 8 月): 新しいバージョン (MFR2.zip) は、元の機能を新しいコマンドで拡張します。 この書き直しでは、名前空間の代わりにクラスを使用して、よりクリーンなコード (および mixin をサポートする) を実現しています。 動作のカスタマイズ (コンテナー要素ごとに何を行うか) のために無名関数を渡す代わりに、式の操作が使用されます。 .zip ファイルには、テストと、キャッシュの実装に役立つ複合 (マルチレベル キー) ディクショナリを実装する実際のアプリケーションが含まれています。
利用可能なメソッドのリストは次のとおりです。
Map: 入力値の置換後の式の評価結果のリストを返します。
Map2dict: 入力値の置換後の 2 つの式の評価結果の辞書 (連想配列) を返します。
Reduce: 入力値の置換後の式の評価結果の累積を返します。
フィルター: 入力値の置換後の式の評価が true である、指定されたリスト内の要素を返します
Any: 式の評価で使用されたときに、指定されたリスト内のいずれかの要素が真の値になる場合、1 を返します。
すべて: 式の評価で使用されたときに、指定されたリスト内の要素のいずれかが真の値になる場合は 1 を返します。
Zip: 同じ長さの 2 つのリストを、対応する要素のペアの 1 つのリストに結合します。 連想配列ではサポートされていません/定義されていません
適用: 副作用の入力に式を適用します。
フラット: ネストされたリストを受け取り、すべての要素が同じレベルにあり、元の順序を維持するリストを返します