Tobilog-Selection
こんにちは!
とびろぐ管理人のとびうおです。
今回は、Haskellの「:」について理解を深めていきましょう!
「:」とは?
:とは、haskellのリストの操作で使用される記号です。
例えば、以下のようなコードがあったとしましょう。
main = print $ reverseList[1,2,3,4,5]
reverseList :: [a] -> [a]
reverseList [] = []
reverseList (x:xs) = reverseList xs ++ [x]
このようなコードでは、リストを逆順にしているような形の関数になっています。
ここでいう:の役割
ここでは、「:」を使っていて、x:xsという書き方をしています。
ここで、「:」というのは先頭の要素と残りのリストに分解しています。
ということで、[1,2,3,4,5,6]とあった場合は、1,[2,3,3,5]となっているわけです。
以下のように定義すると、
main = print $ reverseList[1,2,3,4,5]
reverseList [] = []
reverseList (x:xs) = [[x],xs]
このように出力されます。
ここでわかることは、最初のxは数字で、残りは配列で出力されているということです。
とびうお
ここで、ちゃんと出力される型を注意しようね!
以下のようにすると、動きません。
main = print $ reverseList[1,2,3,4,5]
reverseList [] = []
reverseList (x:xs) = [x,xs]
とびうお
型意識is大事
おわりに
Haskellの「:」は配列を、最初の数字(文字も!)と残りの配列に分ける記号です!
とびうお
:はよく使うので、覚えておきましょう!
Haskellの記事は他にも!
とびろぐでは、Haskellの記事をこれ以外にも書いています!
ぜひ、見てみてくださいね!
コメント