タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

興味とtypesに関するslay-tのブックマーク (1)

  • Rustで型の多相再帰はできない - 簡潔なQ

    OCamlやHaskellに比べると、Rustは多相再帰ができない場合がほとんどである。以下にその詳細を説明する。 多相再帰 異なる型引数による再帰呼び出しを多相再帰 (polymorphic recursion) という。多相再帰はPurely Functinoal Data Structuresで紹介されているようなデータ構造でよく出てくる。例えば、完全二分木はOCamlとHaskellではそれぞれ以下のように書ける。 type 'a sep = Nil | Cons of ('a * 'a) sep data Sep a = Nil | Cons (Sep (a, a)) これがlistの定義と異なることがわかるだろうか。listでは 'a list の定義に 'a list という形の型のみを用いる。ここでは 'a sep の定義に ('a * 'a) sep を用いている。これが

    Rustで型の多相再帰はできない - 簡潔なQ
  • 1