私はハスケルの世界ではかなり新しいです。私はオンラインでhttp://learnyouahaskell.comを読んでいましたが、パターンマッチングセクションに関する細かいことは理解できませんでした。私は パターンx:文字列のxs
ようなmyFunc' (firstLetter:_) = "Hello" ++firstLetter
何かをする場合、私は
Couldn't match type ‘Char’ with ‘[Char]’
Expected type: [[Char]]
Actual type: [Char]
この関数を呼び出すときしかし、私は次のエラーを与え、それらの機能
myFunc' (firstLetter:_) = firstLetter -- returns firstLetter of given string
を書かれている。しかし、私はこのように機能を変更した場合
myFunc' (firstLetter:_) = "Hello" ++ [firstLetter]
この関数を呼び出すとうまく動作します。なぜ私は他の場合に括弧が必要なのだろうと思っていた。実際に何がfirstLetterです。
こんにちはRakete1111、ご意見ありがとうございます。もうちょっとしたことを確認するためのもう少し小さな実験がありました。あなたはcharに[Char]を追加することはできないと言いました。しかし、ghci( 'c': "dfg")でこの行を実行すると有効です。つまり、(++)演算子には同じ型が必要です。 –
@ CanEldemまあ、技術的には、はい。 'c'の型は' 'dfg''の中の要素の型、つまり' 'Char''であるため、あなたは' 'Line''です。 '" c ":" dfg "'は無効です。 – Rakete1111