だから私はHaskellのHaskellの最初、真ん中の部分をパターンマッチング、そして最後
swapReverse :: String => String
swapReverse [x] = [x]
swapReverse [x,y] = [y,x]
swapReverse (x:xs:l) = -- pattern match fails here
let last = [l]
middle = xs
first = [x]
in last ++ swapReverse middle ++ first
に単純な文字列の逆機能をやってみたかったのでfirst
とlast
を持っているHaskellでパターン構造を定義する方法があります要素、およびmiddle
のすべての要素
型宣言に注意してください:) おそらく 'swapReverse :: String - > String'を意味します。あるいは、おそらく' swapReverse :: [a] - > [a] 'のようなもっと一般的なものです。 –
ところで、リンクされたリストの最後の要素を見つけることはO(N)です。あなたは実際にそれをやりたいとは決してほとんど決してありません。 – hugomg
タイプシグネチャは 'String - > String'でなければなりません。BTW – Landei