Haskellを使い、リスト内の数字をすべて掛け合わせるコードを書きたい


いま、学校の課題でHaskellを使ってタイトルにもあるようにリスト内の数字をすべて掛け合わせるコードを書いています。

例）[1,2,3,4,5] -> 120

現段階での僕のコードは以下のようになっています。

[code]

    myproduct :: (Num a) => [a] -> a
    myproduct[] = 0
    myproduct(x:xs) = x*(myproduct xs)
    
[/code]

色々なサイトなどを参照しながら書いてみたんですがどれもうまくいってません。

また、fold functionを使わないといけないのですが、どうすればいいか全くわからない状態まで来てしまいました。  
どなたか教えていただけると幸いです。また解説等も載せてくれると幸いです。  
よろしくお願いします。




0に何をかけても0になので、

[code]

    myproduct[] = 0
    
[/code]

だと、必ず答えは0になってしまいます。

[code]

    myproduct[] = 1
    
[/code]

とすれば、うまくいくはずです。

