ラムダ計算とは
ラムダ計算とは、簡単に言ってしまうと関数だけから成り立つ計算モデルで、すべての計算可能な関数が表現でき、正しく評価できるものらしいです。
関数型言語の理解も深まるだろうということで、最近勉強しています。
やってみると、なかなか面白く、なるほどの連続です。
では、実際どのように表現できるのか見ていこうかと思います。
ラムダ計算とは、簡単に言ってしまうと関数だけから成り立つ計算モデルで、すべての計算可能な関数が表現でき、正しく評価できるものらしいです。
関数型言語の理解も深まるだろうということで、最近勉強しています。
やってみると、なかなか面白く、なるほどの連続です。
では、実際どのように表現できるのか見ていこうかと思います。
Geminiというのは、GoogleのAIで、Googleアカウントを持っていれば使えるものだったので、試しに使ってみました。
有料版は、より高性能なAIのようですが、とりあえずどんなものなのかを知りたかったので、無料のものを使っています。
率直な感想としては「結構役立つ気がする」です。あくまで気がするだけですが......
残念なのは、ロト6の予想とかロト6のデータとかをごにょごにょはしてくれないということです。
ロト6の過去データをスクレイピングするのめんどくさいのでおまかせしようとしたのですが、「無理〜」と言われました。
言葉たくみにAIをうまく利用してやろうと思ったのですが、ロト6とかナンバーズとかいう言葉が出た時点で「無理〜」が確定している感じでした。
まあ、わかっていたことですが......残念
では、私はどのように使っているのか?
一人で勉強していて困ることの一つに、本当に自分の理解が正しいかどうかを確認する術がないことです。
特に最近ずっと使用しているOCamlや数学に関しては、こういう状態になることがあります。
そこで、私の理解が正しいかどうかをGeminiで答え合わせする、という使い方をしています。
検索して調べるという従来の方法の場合、検索結果の情報が新しいものなのか、古いものなのか、情報が正確なのか、どのような方の情報なのか、ということを気にしながら、いくつかの情報を調べることになりますが、AIを使うと「最も正しそうな」感じの情報を、その情報に関して考慮すべきことも踏まえて表示してくれているように思います。
質問する際は、「〇〇について、くわしくわかりやすく教えてください」と、まず質問しています。
そうすると、より細かな質問の仕方のようなもののリストが表示されます。それを参考にしながら質問を繰り返していくという流れで使用しています。
ここで問題になるのが、表示されるコードが正確ではない、むしろ動かないコードだったりすることです。
これは、あまりメジャーとはいえないOCamlという言語だからたまたまそうなっているのか。はたまた私の質問の精度が悪いのか。
しかし、Rustでもちょっと無理あるんとちゃう?というコードが表示されたりするので、〇〇言語だから正確ではない、というわけではなさそうです。
コードに関してはあくまで参考程度に考えたほうが良さそうです。有料のGeminiとかにすると、正確なコードが表示されるのだろうか?
皆さんはこういう場合どのようにしているのだろうか?
今後このあたりの精度が上がるといいなと思いつつ、第2のラバーダックとして活用していこうと思います。
Pythonでは、特殊メソッド(__eq__, __lt__, __gt__など)を実装することによって、比較演算子を使うことができるようになります。例えば、intはdir(int)
とすると、intの属性が表示されますが、その中に上記の特殊メソッドも含まれており、比較演算子を使うことができるようになっています。
Pythonにはint、strなど型はあります。しかし、Pythonには「この特殊メソッドを実装しているものは〇〇というグループである」というようなものはありません。
なので、作ってみました。
親父の死後、遺品整理をゆるゆると進めている流れで、自分の不要なモノも整理しようと、クローゼットのダンボールを開けていたところ、学生時代の教科書が出てきました。
経済学部だったので、経済原論、経済史、経営論など「あ〜やったな、こんな授業」といった懐かしい本がいっぱい入っていました。
懐かしく感じながら見ていると、なんとムイスリ出版社「Pascalの基礎」という3.5インチ2DDフロッピー付きの本が出てきました。
私はどうやら学生時代にPascalの授業を受けていたようです。