1. ホーム
  2. functional-programming

[解決済み] 純粋関数型言語において、逆関数を得るためのアルゴリズムはあるか?

2022-11-18 16:01:24

質問

Haskellのような純粋関数型言語において、関数の逆行列を得る(編集する)ためのアルゴリズムはありますか?また、そうなるように関数をプログラムする具体的な方法はあるのでしょうか?

どのように解決するのですか?

場合によっては、そうです! という美しい論文があります。 双方向化を無料で! この論文では、関数が十分に多相性である場合に、完全に自動的に逆関数を導出することが可能であるいくつかのケースを論じています。(また、関数が多相性でない場合にこの問題を難しくしているものについても論じています)。

関数が反転可能な場合に得られるのは、(偽の入力を持つ)逆関数です。他のケースでは、古い入力値と新しい出力値を"merge"しようとする関数を得ることができます。