Observableシーケンスを使って非同期イベントやデータストリームを合成する、Reactive Extensions(Rx)のSwift実装です。
janestreet/incremental
自己調整計算に基づき、入力が変化したときに効率よく更新される計算を構築するためのOCamlライブラリです。
- スター
- 1,539
- フォーク
- 76
- 未解決の Issue
- 0
- 最終コミット
- 4 日前
これは何?
Incrementalを使うと、入力値とそこから導出される値を組み合わせて複雑な計算を構築でき、入力が変化したときは影響を受ける部分だけが再計算されます。Umut Acarらによる自己調整計算の研究に基づいており、Jane Streetが開発しています。
典型的な用途は、スプレッドシートのような計算グラフです。値をほかの値を使って定義すると、ライブラリが導出結果を元の値と同期した状態に保ちます。同じ仕組みは、新しいデータを効率よく取り込む必要があるGUIのビューや、フィルタリングしたマッピングや逆マッピングなど、元データとの整合性を保つ必要がある派生データにも適しています。
このライブラリはOCamlで書かれており、APIのドキュメントはリポジトリ内のインターフェースファイルincremental_intf.mlに記載されています。
主な機能
- 01依存関係グラフを構築し、入力が変化したときに影響を受ける部分だけを再計算します。
- 02導出された値を、元の値と自動的に整合した状態に保ちます。
- 03OCamlで書かれており、APIはインターフェースファイルに記載されています。
ユースケース
- 変化するデータに効率よく反応する、スプレッドシートのような計算の構築。
- 新しいデータを段階的に取り込むGUIアプリケーションのビューの構築。
- フィルタリングしたマッピングや逆マッピングなどの派生データを、元データと同期した状態に維持。
クイックスタート
- 1
opam でライブラリをインストールする
opam install incremental - 2
incremental_intf.ml の詳細なドキュメントを読んで、OCaml プロジェクトでライブラリを使用する
使う前に知っておきたいこと
- 使用するには OCaml の知識が必要です。
トピック
よくある質問
- incremental とは?
- 自己調整計算に基づき、入力が変化したときに効率よく更新される計算を構築するためのOCamlライブラリです。 Incrementalを使うと、入力値とそこから導出される値を組み合わせて複雑な計算を構築でき、入力が変化したときは影響を受ける部分だけが再計算されます。Umut Acarらによる自己調整計算の研究に基づいており、Jane Streetが開発しています。
- incremental は無料で使えますか?ライセンスは?
- incremental は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- incremental は今もメンテナンスされていますか?
- 活発にメンテナンス中。incremental の最終コミットは 2026年11月3日 です。
- incremental は何に使えますか?
- 変化するデータに効率よく反応する、スプレッドシートのような計算の構築。 新しいデータを段階的に取り込むGUIアプリケーションのビューの構築。 フィルタリングしたマッピングや逆マッピングなどの派生データを、元データと同期した状態に維持。
- incremental のインストール方法は?
- opam でライブラリをインストールする: opam install incremental incremental_intf.ml の詳細なドキュメントを読んで、OCaml プロジェクトでライブラリを使用する
- incremental はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/janestreet/incremental
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Scala 2のコンパイラ、標準ライブラリ、言語仕様と、Scala 2のコードベースへの貢献ガイドを収録。
配列やオブジェクトなどの一般的な処理に使える、data-firstとdata-lastの両方に対応したTypeScriptユーティリティライブラリです。
組み込みオブジェクトを拡張せずに、each、map、reduce、filterなどの関数型ヘルパーを提供するJavaScriptユーティリティライブラリ。
Lilaは、無料・広告なし・オープンソースのオンラインチェスプラットフォームlichess.orgを支えるScala製サーバーです。