タグ付けされた質問 「type-systems」




4
依存して型付けされないのはなぜですか?
「Haskellは徐々に依存型付き言語になりつつある」という意見を反映するいくつかの情報源を見てきました。含意は、ますます多くの言語拡張により、Haskellがその一般的な方向に向かっていることですが、まだそこにはありません。 基本的に私が知りたいことが2つあります。1つ目は、非常に簡単に言うと、「依存型付き言語であること」は実際には何を意味するのでしょうか。(うまくいけば、あまり技術的ではありません。) 2番目の質問は...欠点は何ですか?つまり、人々は私たちがそのように向かっていることを知っているので、それにはいくつかの利点があるに違いありません。それでも、私たちはまだそこにいないので、人々がずっと先に行くのを止めるいくつかの欠点があるに違いありません。問題は複雑さが急激に増加しているという印象を受けます。しかし、依存するタイピングが何であるかを本当に理解していないので、私には確かにわかりません。 私が知っているのは、依存型プログラミング言語について読み始めるたびに、テキストがまったく理解できないことです...おそらくそれが問題です。(?)

4
Scalaでは `#`演算子はどういう意味ですか?
このコードはこのブログにあります:Scalaでの型レベルのプログラミング: // define the abstract types and bounds trait Recurse { type Next <: Recurse // this is the recursive function definition type X[R <: Recurse] <: Int } // implementation trait RecurseA extends Recurse { type Next = RecurseA // this is the implementation type X[R <: Recurse] = …

4
依存するメソッドタイプの説得力のある使用例は何ですか?
以前は実験的な機能であった従属メソッドタイプが、デフォルトでtrunkで有効になりました。これにより、Scalaコミュニティに興奮が生じたようです。 一見したところ、これが何に役立つかはすぐにはわかりません。Heiko Seebergerがここに依存メソッドタイプの簡単な例を投稿しました。コメントでわかるように、メソッドのタイプパラメータを使用して簡単に再現できます。したがって、それはそれほど説得力のある例ではありませんでした。(明らかなものが欠けている可能性があります。修正してください。) 依存するメソッドタイプの代替案より明らかに有利なユースケースの実用的で有用な例は何ですか? 以前は不可能/簡単でなかった、それらを使って何ができるか? 彼らは、既存の型システムの機能に対して何を購入するのですか? また、依存するメソッドタイプは、Haskell、OCamlなどの他の高度な型付き言語の型システムにある機能に類似しているか、それからインスピレーションを得ていますか?


4
Stringを型クラスのインスタンスにできないのはなぜですか?
与えられた: data Foo = FooString String … class Fooable a where --(is this a good way to name this?) toFoo :: a -> Foo のStringインスタンスを作成したいFooable: instance Fooable String where toFoo = FooString 次にGHCは不平を言います: Illegal instance declaration for `Fooable String' (All instance types must be of the form (T t1 ... …

3
MonadReaderを定義するためにFunctionalDependencyが必要なのはなぜですか?
クラスの定義を理解できた MonadReader class Monad m => MonadReader r m | m -> r where ... Haskellの関数型依存関係のドキュメントを読んだ後| m -> r、型変数rがによって一意に決定されることを指定していることが理解できますm。これまでに見たMonadReaderのいくつかの典型的なインスタンス(例:)に基づいて、この要件は妥当だと思いますがReader、Readerこの機能的な依存関係句がなくてもインスタンスを定義できるように思えます。 私の質問は、MonadReaderの定義に機能的な依存関係が必要な理由です。これは、MonadReaderを適切に定義できないという意味で、MonadReaderを定義するために機能的に必要ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.