タグ

ブックマーク / x76789.hatenadiary.org (2)

  • Haskell の型システム - x76789の研究メモ

    Haskell/Polymorphism - Wikibooks, open books for an open world 型システムはその表現力に関して、rank-1, rank-2, rank-n として分類されるのだそうだ。一般に rank-n type とは、少なくともひとつのrank-(n-1の引数を持ちかつそのランクより高い引数は持たない「函数」のことである。 高階型の理論基礎ははSystem Fであり、これは二階のラムダ計算(The second-order lambda calculus)としても知られている。 Haskell98は、Hindley-Miler 型システムに基づいている。Hindley-Miler 型システムはSystem Fの制限系であり、量子記号(Forall)とrank-2 types 以上の高階型はサポートしていない。System Fのフルパワーの

    Haskell の型システム - x76789の研究メモ
  • agda で "Hello, world!" - x76789の研究メモ

    Agda で入出力を扱う場合,Agda の FFI(Foreign Function Interface)を通し,Haskellの入出力関数を用いておこなう. 実際に,「Hello, World」プログラムをAgdaで作成してみた.ちなみに,入出力をおこなうには,コンパイルしておこなう必要がある.詳細は以下の通り. hello.agda module hello where data Unit : Set where unit : Unit {-# COMPILED_DATA Unit () () #-} data List (A : Set) : Set where [] : List A _::_ : A -> List A -> List A {-# BUILTIN LIST List #-} {-# BUILTIN NIL [] #-} {-# BUILTIN CONS _::_

    agda で "Hello, world!" - x76789の研究メモ
  • 1