Repolode
janestreet

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. 1

    opam でライブラリをインストールする

    opam install incremental
  2. 2

    incremental_intf.ml の詳細なドキュメントを読んで、OCaml プロジェクトでライブラリを使用する

使う前に知っておきたいこと

  • 使用するには OCaml の知識が必要です。

トピック

#ocaml#incremental-computation#self-adjusting-computation#functional-programming#reactive

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト