一般的な再帰を伴わずにHaskellに最も近い言語/型システム

私は完全に機能的なDSLを実装しましたが、今はその理由を考えたいと思います。それを既存の言語と比較することができると便利です。

型システムは高次関数を持つパラメトリック多形であるが、従属型はない。許容される唯一の再帰は、誘導的に定義された型(自然数を含む)よりも倍の形の構造的再帰です。

私が見ているところでは、言語はチューリングの不完全さとCoqによる再帰の形を共有しますが、パラメトリック多形性をハスケルと共有します。より正確な比較が行われるか?特に、システムFが構造的な再帰のみをサポートするように設定されていて、それがどのように見えるのか疑問に思っていました。

ありがとう!

ベストアンサー

一般的な再帰を伴わないHaskellに最も近い言語は、適切な fold
演算をプリミティブとみなして、一般的再帰を持たないHaskellです。

ハスケルのデータ型は、ハスケルの怠惰な評価戦略のおかげで非妥当な値を持っています。
Haskellからの一般的な再帰を削除すると、レイジーと熱心な評価の違いはもはや重要ではなく、データ型は、すべてのプログラムが終了し、
fold
は非終了プログラムを与えます)。ですから、あなたは一般的な再帰なしでHaskellを保つことができます。それはパラメトリック多形性を持ち、誘導型は期待どおりに動作します。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です