計算機科学のブログ

型によるプログラミング パラメータ化された型 入れ子

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT3(型によるプログラミング)、LESSON18(パラメータ化された型)、18.1(引数をとる型)、クイックチェック 18-1の解答を求めてみる。

Box (Box 文字)型 (Box (Box Char)型)

入出力結果(Terminal, Zsh)

% ghci
GHCi, version 8.10.7: https://www.haskell.org/ghc/  :? for help
Loaded package environment from /Users/…/.ghc/x86_64-darwin-8.10.7/environments/default
macro 'doc' overwrites builtin command.  Use ':def!' to overwrite.
(0.00 secs, 0 bytes)
(0.00 secs, 0 bytes)
Loaded GHCi configuration from /Users/…/.ghc/ghci.conf
Prelude
λ> data Box a = Box a
type Box :: * -> *
data Box a = ...
(0.00 secs, 0 bytes)
Prelude
λ> wrap = Box
wrap :: a -> Box a
(0.00 secs, 59,456 bytes)
Prelude
λ> :t wrap (Box 'a')
wrap (Box 'a') :: Box (Box Char)
Prelude
λ> :quit
Leaving GHCi.
%