『すごいHaskellたのしく学ぼう!』を読んでいたら、Maybe型が出てきました。find関数で返ってくるのがJust xかNothingだ、という話です。
そこでちょっとひっかかりました。なんでNothingがあるのに、値そのものじゃなくてJustでくるんだろう、と。Justがあるせいで、後々いろいろやりづらくなりそうな気がしたんです。
本にもちゃんと説明は書いてあるんですけど、読み流してしまっていました。なので「Nothingがあるなら、Justで返す必要ないのでは?」と、そのままChatGPTに聞いてみました。返ってきたのは、返す型が1つに決まっていないといけないから、という答え。なるほど、そういうことか、と腑に落ちました。
不思議なもので、本に書いてあることでも、一回自分の言葉で質問し直すと納得感が一個乗る気がします。読んで「ふーん」で通り過ぎたところが、「これで合ってる?」「つまりこういうこと?」と投げつけてみると、ちゃんと自分のものになる感覚。面倒なんですけど、この一手間が理解に繋がりそうです。
しかもこれ、相手がAIだからやれている気もします。人に聞くとなると、「こんな当たり前なこと聞いていいのかな」「どこかですでに言われてたらどうしよう」みたいなのが乗ってしまって、なかなか口に出せない。その点AIは、そういうのを一切気にせず投げられる。
ただ、AIに聞けば何でも一発で分かるわけでもないみたいです。findKeyという関数を畳み込みで書き直すとこうなりますよ、と本の中でコードが提示されていたんですけど、全然理解が追いつかなくて。これもChatGPTに聞いてみたんですけど、分かりやすい気もするけど、イマイチピンとこない。こういうのは、もう少し自分で手を動かしてみないとダメなのかもしれません。