Haskellの:について

こんにちは!

とびろぐ管理人のとびうおです。

今回は、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]
Haskellの:について

このように出力されます。

ここでわかることは、最初のxは数字で、残りは配列で出力されているということです。

とびうお
とびうお

ここで、ちゃんと出力される型を注意しようね!

以下のようにすると、動きません。

main = print $ reverseList[1,2,3,4,5]
reverseList [] = []
reverseList (x:xs) = [x,xs]
Haskellの:について
とびうお
とびうお

型意識is大事

おわりに

Haskellの「:」は配列を、最初の数字(文字も!)と残りの配列に分ける記号です

とびうお
とびうお

:はよく使うので、覚えておきましょう!

Haskellの記事は他にも!

とびろぐでは、Haskellの記事をこれ以外にも書いています!

ぜひ、見てみてくださいね!

https://tobilog.net/?s=haskell

とびうお
ブログ管理人です!
swimaneというアプリをリリースしました!

コメント

タイトルとURLをコピーしました