関数型プログラミングの基礎 - 再帰ルールとパターンマッチング - 最初の再帰関数:パターンマッチング - 引数、tail関数の定義
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT1(関数型プログラミングの基礎)、LESSON 7(再帰ルールとパターンマッチング)、クイックチック 7-3の解答を求めてみる。
コード
sample.hs
main :: IO ()
main = do
print $ tail xs
print $ myTail xs
print $ myTail ""
xs :: [Integer]
xs = [1 .. 10]
myTail :: [a] -> [a]
myTail (x:xs) = xs
myTail [] = error "empty list"
入出力結果(Terminal, Zsh)
% runghc sample.hs
[2,3,4,5,6,7,8,9,10]
[2,3,4,5,6,7,8,9,10]
"sample.hs: empty list
CallStack (from HasCallStack):
error, called at sample.hs:12:13 in main:Main
%