私は、Haskell関数の集合はすべての数学関数のサブセットであることを知っています。なぜなら、それはプログラミング言語なので、関数のすべてが計算可能でなければならないからです。しかし、すべてのハスケル関数(および一般的な純関数)はcontinuousであり、数学的な観点から真実であるか?関数型プログラミングの純関数はすべて連続していますか?
6
A
答えて
18
計算機能は、リンク先のWikipediaページの第2段落に記載されているスコットの連続性という意味で連続しています。
連続ないある(擬似ハスケル)である関数の一例
isInfinite :: [a] -> Bool
isInfinite xs
| {- xs is an infinite list x0 : x1 : x2 : ... -} = True
| {- xs is a finite list x0 : x1 : x2 : ... : xn : [] -} = False
| {- xs is a list with diverging spine
x0 : x1 : x2 : ... : xn : _|_ -} = _|_
() :() :() : ...
シーケンス
のsupremumあるので連続して失敗しました_|_
() : _|_
() :() : _|_
...
しかし、
True = isInfinite (() :() :() : ...)
シーケンスのsupremumない
_|_ = isInfinite (_|_)
_|_ = isInfinite (() : _|_)
_|_ = isInfinite (() :() : _|_)
...
計算可能な関数は、時間の有限量で機能のみ、その入力の有限の量を検査することができ、本質的にので、連続しています。したがって、計算可能な関数が、例えば特定の入力でTrue
を返す場合、特定の有限の観測値の収集に対する元の入力と一致する入力セットのすべての入力に対して、True
を返す必要があります。元の入力に収束する任意の増加するシーケンスは、最終的に着陸し、このセット内にとどまるので、この増加するシーケンス上の関数の値のシーケンスは、True
に収束する。
連続関数は必ずしも計算可能ではありません。例えば、Integer
がフラットなドメインであるため、任意の順序保存(すなわち、f _|_ = _|_
、またはf
は定数)機能Integer -> Bool
が連続しています。もちろん、それらの多くは計算可能です。
+0
優れた、明確な答え。 – luqui
関連する問題
- 1. 関数型プログラミングとマルコフ連鎖は何とか関係していますか?
- 2. 関数型プログラミング - すべてのパラメータを持つ関数呼び出し
- 3. jQueryは関数型プログラミングとどのように関係していますか?
- 4. 関数型プログラミング
- 5. 関数型プログラミングjavacript
- 6. JavaScriptの関数型プログラミング - イベント
- 7. のpython関数型プログラミングpyspark
- 8. これは純関数(関数型プログラミング)と考えることができますか?
- 9. 関数型プログラミング:あなたは、引数
- 10. 関数型プログラミングにおける関数の型の決定
- 11. C#で静的関数を使用しているのは、関数型プログラミングの一種ですか?
- 12. 関数型プログラミング、Haskell関数を変数リストに適用する
- 13. プログラミングで関数のデータ型を返す
- 14. JavaScriptの関数型プログラミング/パラメータ渡し
- 15. ggplotでの関数型プログラミングの使用
- 16. F#関数の型が間違っていて、関数呼び出しの型が間違っています
- 17. 連続関数で変数を渡しますか?
- 18. C/C++での関数型プログラミング?
- 19. スカラ - 無限ストリームでの関数型プログラミング
- 20. 関数型プログラミングの依存性注入
- 21. は、パンダがインプレイス関数と連結していますか?
- 22. 非純粋関数と純粋関数の違いは何ですか?
- 23. 関数型プログラミングの副作用は何ですか?
- 24. 関数型プログラミングを使用して、Javaでファイルを閉じる
- 25. 関数型プログラミングでの再帰代数型の理解
- 26. C内のsetcontext関数ファミリは継続していますか?
- 27. すべての型パラメータは関数の依存関係によってお互いに依存します
- 28. カスタムストレージポーリングは、消費計画Azure関数に関連していますか?
- 29. 関数型プログラミングにおけるメモリリーク
- 30. 関数型プログラミングに基づくUI
@ HarryDeveloper1212これは良い質問だと思います。私は、質問が意味することを理解していることを明確にするために(私が望む)いくつかの編集を行った。変更に不満がある場合は、[質問の編集](http://stackoverflow.com/posts/34617662/edit)をもう一度押してください。 –