私は最近、大量のコードをリファクタリングし、それらをLinqクエリに置き換えています。
言語バイアスの除去-Linqは、基本的に一連のデータを操作するMap / FilterおよびReduce操作のセットです。
これは、理論的にこれをどこまで引き継ぐことができるかを考えさせられました。コードベース全体を一連の(または単一の)Map / FilterおよびReduce操作に書き換えることができますか?
残念なことに、私は有用なことをするために報酬を受け取っているので、これ以上実験することはできませんでしたが、そのように再構築できないコード構造は考えられません。副作用コードは、モナドを介して処理できます。出力でさえ、基本的にメモリアドレスをスクリーンアドレスにマッピングします。
(理論的に)Linqクエリとして書き直せないものはありますか?
:木はここを参照してくださいstackoverflow.com/questions/250377/...
—
blueberryfields
チューリングの完了を保証するには、「reduce」で十分だといつも思っていました(マップとフィルターはreduce操作として実装できますか?)-少なくとも、reduceに相当する関数型言語です。Linqの実装が機能的な実装にどれだけ近いかを確認するには、Linqについて十分に知りません。
—
ブルーベリーフィールズ
私にはわかりませんが、大まかな経験則では、すべてのコードを記述することを検討している人は、チューリング完全であることが判明します。しかし、その結果は、チューリングが完全であることはあまりエキサイティングではないということです。
—
psr
私はpsrに同意します。この質問に対する有効な答えは、チューリングの完全性に取り組む必要があると思います。証明は、これらの操作のみを使用してチューリングマシンを実装しようとする場合があります。
—
ロブ