私は大学のためにハスケルを習得しなければなりません。そのために、私はlearnyouahaskell.comを最初に使っています。
私はいつも命令言語を使いましたので、他の言語よりもはるかに多くをコーディングすることによってHaskellを練習することに決めました。
は、私はそのようなhead
、tail
、init
として、私は私と比較し、これらの機能の実装を見上げ、いくつかの時点で
リストを操作するには、いくつかの機能を実装するために始めたと私はList.lhs
で定義されたヌル機能つまずい。ヌル関数の実装
ヌルの実装:
-- | Test whether a list is empty.
null :: [a] -> Bool
null [] = True
null (_:_) = False
私の実装:私も、このような簡単な質問:)
には愚かな質問があるので、私の質問は、なぜ元の実装が使用されません知っている
mNull :: [a] -> Bool
mNull [] = True
mNull _ = False
_
の代わりに(_:_)
?
(_:_)
を使用する利点はありますか、わからないようなエッジケースはありますか?
_
はすべてをキャッチするので、私は実際に何か利点を想像することはできません。
これは本当に平等ですが、私はそれも愚かであることがわかります。私の推測では、著者は明示的になりたいと思っています。 – MasterMastic