Haskellを始めたばかりです。Haskellの標準関数を模倣した関数を作成しようとしていますreplicate
が、再帰を使用しています。例えば、
Prelude> replicate 3 "Ha!"
["Ha!","Ha!","Ha!"]
タイプである必要がありInt -> a -> [a]
ます。これまでのところ、私は持っています:
myReplicate :: Int -> a -> [a]
myReplicate x y = y : myReplicate (x-1) y
myReplicate 0 y = [ ]
ただし、私の関数は常に無限リストを生成します。
Prelude> myReplicate 3 "Ha!"
["Ha!","Ha!","Ha!","Ha!","Ha!","Ha!","Ha!",...