!! という演算子の働き
ちょっとだけ時間に余裕ができたので、Haskell を復習しよう。
Haskell を勉強していたのは一年半ぐらい前で、日常的に使わないからすっかり忘れてしまっている。
昔書いた、コマンドライン文字列を受け取って、それを表示するサンプル。
import System main = do args <- getArgs putStrLn $ "hello, " ++ args !! 0 ++ "!"
忘れてても見ればわかるものと、見てもわからないものがある。
(!!) って演算子は何じゃ?
わからないから haskell.org の Prelude のドキュメントで調べてみる。
(!!) :: [a] -> Int -> a
List index (subscript) operator, starting from 0. It is an instance of the more general Data.List.genericIndex, which takes an index of any integral type.
演算子(というか関数)は、リストを受け取って、そのリストの指定した要素を返す、という感じのようだ。コマンドラインの第一引数を取り出すということか。
args !! 0
これは args の最初の要素を返す、ということだな。
ありゃりゃ、全然覚えてねーなぁ・・・。