型付きラケットで依存型を実行することは可能ですか?


9

既存の型付きラケットの実装で依存型を使用することは可能ですか?(つまり、その中に存在しますか?)

型付きラケットを使用して依存型システムを実装することは合理的に可能ですか?


3
この質問を少し明確にする必要があると思います:依存型ラケットに存在するかどうか、またはそれらを追加できるかどうかを尋ねていますか?前者の場合、いいえ(依存型の最も合理的な定義による)であり、後者の場合、はい。
cody 2013年

1
コディノートとして、この質問は不明確であり、あなたが何を意味するかに応じて、答えはあまり興味がないいいえまたはあまり興味がないいいえです。あなたが実際に何を求めているのかがわかるように、この質問を具体化してください。
Gilles「SO-邪悪なことをやめなさい」

回答:



-1

コントラクトを使って「依存型を行う」ことはすでに可能だと思います。https://docs.racket-lang.org/guide/contracts-struct.htmlをチェックして、「データ構造のプロパティのチェック」を探してください

これは、言語の一部として持つのではなく、効果をシミュレートしていると主張できます。ただし、インタープリター/コンパイラーにそれらの依存関係を通知するコードをどこかに記述する必要があり、ラケットではコントラクトを使用してそれを行うことができます。


ラケット内のマクロが「コンパイラーを拡張する」という考えに満足しています
hawkeye

@hawkeyeマクロで依存型を実装するこの質問への回答を提供できますか?(私はそれが可能であることを疑うことはありません。)
Zelphir Kaltstahl 2017

マクロがコンパイラーを拡張するかどうかについての議論はここにあります:stackoverflow.com/a/268091/15441そして、あなたはどんなコードの部分もマクロに入れることができます-したがって、依存型に使用されるコードはマクロに入れることができます。それが私が主張していたことです。
hawkeye 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.