Just!!

あいかわらず、すごいHaskellを読んで寝ています。
家に帰るとヨメとゲームやっちゃうし仕事中にHaskell遊びするわけにもいかんしで、本読んでばかりで手を動かしていません。だから実感なくて寝るんじゃないかバカなの。

いまだにHaskellの構文を見てピンとくるシーンが少ないです。あたしの脳がHaskellの文をパターンマッチングできてないんだわ。x:xsを認識するのがあたしの限界か?

今日はJustで遊んでみます。
Maybe a型という、なんかもういきなり「ハァ?」と思わずにいられないネーミングのそれですが、

*Main> :t Just 1
Just 1 :: Num a => Maybe a

*Main> :t Just 'A'
Just 'A' :: Maybe Char

*Main> :t Just "Abc"
Just "Abc" :: Maybe [Char]

*Main> :t Just []
Just [] :: Maybe [a]

*Main> :t Just [1]
Just [1] :: Num t => Maybe [t]

いたずらを思いついた。

*Main> :t Just Nothing
Just Nothing :: Maybe (Maybe a)

ほー。
こんだけかと言われそうですが、何かと勝手に制約を課しがちな、固いあたしの脳みそにとってはわりと快挙というか金星というか、ほめてあげたい感じ。えらいぞあたしの脳。

*Main> :t Just Just 1
:1:1:
    The function `Just' is applied to two arguments,
    but its type `a0 -> Maybe a0' has only one
    In the expression: Just Just 1

ダメだろうなとは思ったんだけど。

*Main> :t Just $  Just 1
Just $  Just 1 :: Num a => Maybe (Maybe a)

こうですね。

わからんとこだらけだけど読み進めよう、と思って読み進めると、次々にわからんことになって後戻り。
学ぶと難しいが使えば簡単、といったことをtnomura9さんも仰っていたので、まあまずは黙って手を動かせよってことですよね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です