3
A
答えて
6
理論的には、理論と実践は同じです。実際にはそうではありません。
理論上は単なる別の機能的な言語になります。しかし実際に教会の数字と数学を行うことのパフォーマンスの影響を考慮しましたか?はい、あなたはそれを行うことができます。しかし、あなたのプログラムは非常にゆっくりと実行されるので、重度に壊れて見えるでしょう。実際の関数言語は、に基づいて構築しなければならない抽象概念を提供することと、一般的に使用されるものの高速ネイティブ実装を使用することとの間の実用的なトレードオフを行う必要があります。
11
速度は大きな問題ではありません。たとえば、教会の数字を使用することを決めることができますが、実装を最適化して、数字はいつものようにユーザーには完全に透過的に表されます。結果の数値は明らかにどの言語でも同じように実行されます - 人々が独自の算術演算を実装しようとするときや、実装からのものとして高速ではないことを発見したとき、または組み込み関数7
が多い対応するラムダ式よりも速いです...しかし、その点はであり、多くはという問題が悪化しています。単純なラムダ計算では、引数の関数は1つしかありません。これは、すべてが単なる関数なので型エラーがない非常に低レベルのアセンブリ言語のような言語で作業していることを意味します。実際、ラムダ微積分に固執すれば、エラーはまったくありません。マシンコードの類推はここでは非常に重要です。そこには、必要なものを何でもできます.2つの文字列を追加すると、結果は乱数になります。ラムダ計算言語では、数字の関数にいくつかのリストのエンコーディングを送り、それはうっとりして(偽の)答えを返します。
関連する問題
- 1. ラムダ微積分シンタックスエラープロローグ
- 2. ラムダ微積分/式の評価
- 3. なぜこの任期に達した後に停止するのですか?ラムダ微積分
- 4. ラムダ微積分:捕捉回避の再帰的定義
- 5. ラムダ微積分演算子の優先順位
- 6. 積分微分方程式
- 7. なぜ画面全体が使われていないのですか?
- 8. 行列を使ったオクターブ微積分
- 9. eval()は微積分を行うことができますか?
- 10. なぜBRDFは2つの微分の商ですか?
- 11. なぜ、クロスオーバーは微分進化において有益なのですか?
- 12. SQSがラムダのイベントソースではないのはなぜですか?
- 13. なぜシステムコールセクションで `execlp()`が使われないのですか
- 14. `K.cast`は` K.mean`ではなく `categorical_accuracy`でなぜ使われていますか?
- 15. Mathematicaのリストの数値微積分
- 16. PHPの微分解析で何かがうまくいかない
- 17. 乗算された微分関数の積分
- 18. マップ内のラムダが実行されていないのはなぜですか?
- 19. なぜクランはもっと使われないのですか?
- 20. なぜnumpysの共分散は私と全く異なっていますか?
- 21. 賢者数学微積分2実験
- 22. なぜ2分ごとにアンドロイド通知が行われないのですか?
- 23. アンドロイド上の単純なHTTPリクエスト、全く分からなぜエラー
- 24. なぜEigenコストで同じサイズの行列の内積が全く異なる時間ですか?
- 25. ラムダ式がラムダ式と呼ばれるのはなぜですか?
- 26. なぜC++のラムダ式が動作しないのですか
- 27. plot.defaultの "mar"引数が使われないのはなぜですか?
- 28. 主成分分析 - なぜ固有ベクトルの内積がゼロでないのですか?
- 29. ビューは、データベース全体をprininting、なぜわからない
- 30. Immediate Windowでラムダ式を使用できないのはなぜですか?
はい、私はそれらを考慮しました。私はネイティブの表現とコードに抽象化を自動的に最適化する方法を考えてきました。 –
スピード以外の問題はありますか? –
@フォレスト:スピードは私が知っていることであり、引用されている問題です。それを超えると、普段の障壁、図書館などの障壁があります。もしあなたが実際にそれをやろうとしたら、私はハスケルのような言語を怠惰にすることを提案します。それ以外の点では、Schemeでは単純ではない概念的にプログラマーに何を提供していますか? – btilly