計算機科学のブログ

型の紹介 - 型の基礎 - 型変数 - map関数と型変数

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT2(型の紹介)、LESSON 11(型の基礎)、11.3(型変数)、クイックチェック 11-4の解答を求めてみる。

コード

sample4.hs

main = do
  print $ myMap (+ 1) [1 .. 10] -- これはInteger -> Integer で問題ない
  print $ map (+ 1) [1 .. 10]
--   print $ myMap show [1 .. 10] -- これはInteger -> String だから a -> a だと上手くいかない
  print $ map show [1 .. 10]

myMap :: (a -> a) -> [a] -> [a]
myMap = map

入出力結果(Terminal, Zsh)

% runghc sample4.hs 
[2,3,4,5,6,7,8,9,10,11]
[2,3,4,5,6,7,8,9,10,11]
["1","2","3","4","5","6","7","8","9","10"]
%