型の紹介 - 型の基礎 - 型変数 - tail関数、head関数、型シグネチャ、安全なtail
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT2(型の紹介)、LESSON 11(型の基礎)、11.5(練習問題)、Q11-2の解答を求めてみる。
コード
sample.hs
main :: IO ()
main = do
print $ tail [1]
print $ tail [1, 2]
print $ tail [1 .. 10]
print $ myTail ([] :: [Int])
print $ myTail [1]
print $ myTail [1, 2]
print $ myTail [1 .. 10]
-- tail :: [a] -> [a]
myTail :: [a] -> [a]
myTail [] = []
myTail (x : xs) = xs
-- head :: [a] -> a
-- 空リストを返すhead関数を作成することはできない。
入出力結果(Terminal, Zsh)
% runghc sample.hs
[]
[2]
[2,3,4,5,6,7,8,9,10]
[]
[]
[2]
[2,3,4,5,6,7,8,9,10]
%