新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

Dr.Bard提示の「Bulls and Cows」いじってみました。その3。Secret.contains?

2023-05-24 14:02:21 | Scala

27行目の意味がハッキリしなかったので、42行目から44行目で書き換えてみました。

Tryは両方で+1されてます。evalとevalNo2の両方。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Dr.Bardから提示された「Bulls and Cows」をいじります。その2。

2023-05-23 23:03:57 | Scala

 8回では正解にたどり着けないので、20回までやれるにしました。慣れも必要そうです。secretは1000以上ですので、答えに苦しんで0123とかやるとエラーになります。本当は、正解にたどり着くのをどうすれば良いのかなあ?自分には無理そうですが…。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Dr.Bardから提示された「Bulls and Cows」をいじります。その1。

2023-05-22 22:48:18 | Scala

先ずは、secretが4桁になっているか確かめます。

 

20行目と21行目は分かりますが、22行目と23行目は分かりづらい。直感的には分かりますが…。疑問も感じます。理解してない?ここの発想が出てきません。(苦)でも、Bulls and Cowsの肝ですし、cametanさん式だとevalの部分ですね。そのまま使います。

どうやら大丈夫そうです。10回調べてみました。

コメント (1)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cametanさんのブログから、「Bulls and Cows」をBardに聞いてみました。Scalaで表示できますか?

2023-05-22 12:00:10 | Scala

cametanさんのブログにあった書き込みはこちらです。

 cametanさんのブログに有ったのは、数字4桁ですので、ちょっとだけ違います。答えるのが面倒なので、secretを表示してます。これをcametanさん式に変えると勉強になるかな?プログラミングではいろんなやり方があるんですね。

 Bardに、初め「Bulls and Cows」 知ってますか?と聞いたら、知ってるというので、Scalaで表示できますか?と聞いたら、表示されたのはHello Worldのコードでした。質問にもコツが必要なんですかね。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1から100までの和に末尾再帰を使ってみました。

2023-05-15 10:53:12 | Scala

末尾再帰と普通の再帰、両方やってみました。

普通の再帰はスタックを消費しますので、実行には注意が必要です。多分。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scalaで階乗計算に末尾再帰を使ってみる。

2023-05-14 22:43:10 | Scala

先ずは、普通にやってみます。1x2x…x10の値です。

 終了は10回目の計算が終わったとき。aとbの初期値はa*bは1にします。bにはnが代入されますし、aにはa*nつまりa*bが代入される。んだろうと思います。結果は普通のやり方と同じだったので、多分良いと思います。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scalaでfib(128)をやって見ました。BigInteger使用します。

2023-05-14 17:03:07 | Scala

 引っかかったのが9行目、a + bとは、書けませんでした。a、bはBigIntegerのインスタンスと言うことでは、a.add(b)と書くのが普通ですが…。警告は@tailrecでした。末尾再帰があるということですかね。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scalaでジャンケンをやってみました。cametanさんが言ってます、REPLを参考にしました。

2023-05-11 09:05:12 | Scala

 whileを抜けるには、break以外でも可能のようです。While( ){ }とDo{ } While( )両方あるようですが、コップ本ではWhileとvar 変数は、付き物なので使わないほうが関数型に近づくと書いてます。VBぽっくないですか?Whileは値を作らないUnitだと書いてます。時々分けの分からない()が表示される時があります。それのことなのかもしれません。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その17。クラスパラメータを持ったtrait。

2023-05-02 20:10:06 | Scala

 

traitではvar namae: StringでOKですが、classではnamae = ""としておかないと駄目みたいです。その他の数値の項目も0や0.0にしておきます。

なかなか手ごわいtraitです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その16。traitの初期化、抽象メンバ。

2023-05-02 09:49:15 | Scala

 

 traitは、クラスパラメータを取れない。例えばclass Point(x : Int, y : Int)はOKだが、trait NoPoint(x : Int, y : Int)はNGとコップ本3版P220に書いてますが、Scala3から変わっているようです。上の例では、trait Playerのnamaeとnenreiがそれです。class Fielder(var namae: String, var nenrei: Int)で、設定されるようです。

 ChatGPTでプログラマの仕事が無くなると言っていますが、本当ですかね?例えば、他人が書いたプログラムは、時として自分が書いても後から見たら、分からないことがショッチュウです。メンテナンスできますかね?それくらい完璧なものが作れるとは、信じがたいのですが…。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その15。traitの初期化。with Pitching with Batting{ }の例。

2023-05-01 16:28:32 | Scala

 val ohtaniのとこだけ前と違います。どうやらtraitが複数あるときは、例のようにwith Pitching with Batting{    }と書いて、{   }の中はそれぞれの変数が使える。初期化も出来るようです。

 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その14。traitの初期化。

2023-05-01 10:02:25 | Scala

Battingとpitchingが単独だと初期化が上手く言ったんですが、NitouryuでPitchingとBatting両方をしてすると、初期化が上手くいかなかった。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その14。少しわかってきたかも => trait

2023-04-30 10:48:35 | Scala

 選手をピッチャーとバッターに分けて、大谷選手みたいな人はNitouryuとして、traitを2個つなげて、クラス定義をしてみました。これだとpitchingとbattingが全て一様にしかインスタンスを作れません。確認はしてませんが、出来るようなことを書いているようです。Kop本では。

 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その13。なかなか難しいtrait。

2023-04-27 23:11:17 | Scala

 ここ暫く、大谷翔平選手と吉田正尚選手のニュースが毎日出ますね。大谷翔平選手は、投げる、打つ、走る全部一流なので、打つ方が駄目でも、何かしら見せてくれます。吉田正尚選手は投げることはしないですが、打つ、守る一流ですね。

 traitで悩んでました。野手を元に、二刀流はどう書けば良いのか?四苦八苦した結果が下です。全てのデータを入れた一個のクラスでも良いのかもしれません。traitされた項目は(この場合はkati、make)、newでインスタンスを作成したようには書けないんですかね。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

シラネアオイと西洋シャクナゲ

2023-04-26 09:19:21 | Scala

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする