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

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

cametanさんのブログに自分でも歯が立ちそうな、興味深い書き込みがありました。

2023-05-20 22:25:16 | Python

興味深い書き込みはここです。

 VBでも三項演算子的に書けば、値を返してくれるので、cametanさん、お勧めの書き方に近いと思います。ただBardでも指摘されてましたが、VBは初心者用のようです。実際そうかも知れませんが。(笑)VBは静的型付けとも違う、混合型ということですので、geometric_sumBで引数の型、関数の型を省略してみました。


コメント (5)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Bardにプログラミング言語に... | トップ | cametanさんのブログに自分で... »
最新の画像もっと見る

5 コメント

コメント日が  古い順  |   新しい順
条件式 (cametan_42)
2023-05-21 00:20:17
> VBでも三項演算子的に書けば、値を返してくれるので、cametanさん、お勧めの書き方に近いと思います。

そうですね。
ちなみに、Scalaなんかも条件分岐「式」なんで、あそこで書いたようにまるっと書ける筈です。

if式で条件分岐する方法:
https://scalapedia.com/articles/86/if%E5%BC%8F%E3%81%A7%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

モダンな言語(F#とかOCamlとか)だと条件分岐は「文」であるよりも「式」である確率が高いんで、C言語/Pascal的な「文」な条件分岐より遥かに使い勝手が良くなってます。
返信する
コメント有難うございました (isam)
2023-05-21 09:48:50
 なかなか発想が、Scalaもやって見てますが、最近の言語が出てこないんですよ。どうしてもVB寄りになってしまいますね。頭が古い。(笑)
 Scalaでもifは式ですので、というか第一級オブジェクトの言語では普通のことでしょうか?Scalaでもdefとvalの違いがわからなくなることが有る、違いがないということなんですかね。
返信する
いやいや (cametan_42)
2023-05-21 10:15:08
> なかなか発想が、Scalaもやって見てますが、最近の言語が出てこないんですよ。どうしてもVB寄りになってしまいますね。頭が古い。(笑)

頭が古い、とか古くない、ってのは関係がないです。
いっつも書いてますが、結局、人間「処女を捧げたプログラミング言語」から離れられないんですよ(笑)。
最初に使った言語の「影響力」ってのが一番デカい。
だから多分isamさんが最初に「使いこなした」プログラミング言語がVBだった、って事でしょうねぇ。

例えば、新しい言語で書いて、ロジックが分からなくなった時に「あの言語で書けばこう書ける」って浮かんできた「あの言語」が結局「一番手に馴染んだ」言語で、isamさんの場合はそれがVBなんだろうな、って事です。
僕も、ロジックが怪しくなった時に「確認の為に」使う言語はSchemeです。結局それが「一番手に馴染んでる」って事で、なかなか最初の言語から離れるのは難しいんです。

> Scalaでもifは式ですので、というか第一級オブジェクトの言語では普通のことでしょうか?

う〜ん、必ずしも「ifが式」ってのと「関数が第一級オブジェクトである」ってのは理論的に直接関係あるわけじゃないですけど。
ただ、モダンな言語で貪欲に「いろんな機能を追加しよう」って頑張ってるプログラミング言語だと両者兼ね備えてる、ってケースは多いと思います。
だからそれに比べると実はPythonは保守的ですよね。

> Scalaでもdefとvalの違いがわからなくなることが有る、違いがないということなんですかね。

これ、理論的にはそうなんです。関数が第一級オブジェクトで無名関数を備えてる、そして変数と関数で名前空間を共有してる場合、「関数定義」と「変数定義」に違いはないんです。
Schemeが証明したのはそういう事です。
ただ、JavaScriptなんか見ると、理論とまた違って、実装上「違い」を作ってる場合があるんですよ(笑)。
だからScalaでもひょっとしたら違いがあるのかもしれません。

注: Scalaの場合、ザーッと見た限り、無名関数以外の関数
なく、defで定義するのは「メソッド」で、複文が定義可能、ってのが違いなのかもしれませんが、Scalaは良く知らんので明言は避けます。
まぁ、見た目は「静的型付け」のRubyですが(笑)。
返信する
俯瞰的コメント、いつも有難う御座います (isam)
2023-05-21 23:28:17
 多分ですが、Bardでも、これだけの答えを引き出すのは難しいかもしれません。でも楽しいかもしれませんし、「bulls and cows」ですか?質問してみよおうかなあ?
 多分ですが、cametanさんの構築とは違うでしょう。答えがあったとしても。
返信する
Bulls and Cows (cametan_42)
2023-05-22 02:22:11
> 「bulls and cows」ですか?質問してみよおうかなあ?

やってみていいと思いますよ。
まぁ、少なくともルールは簡単だし。1970年代のミニコンで動いてたくらいだし。
あの時代に「コンピュータゲーム化してる」って事は実はそんなに難しくないです。
今の言語(VB含む)だと十二分に短く書けるでしょう。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Python」カテゴリの最新記事