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

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

TriangleSimpleの別の方法。ブログを書いていると思いつくんです。

2022-06-17 00:10:18 | C#、VBなど

 前に書いたものよりかは、分かりやすい。ハマらなかった。8行目Int()を付けないと、計算がおかしくなった。切り捨てで無いようです。

 関数型プログラミングでは、駄目なんでしょうね。変数を使って、値を変えているので。例えば、これが大きなプログラムの一部だとして、バグの入る可能性は有るんでしょうか?


コメント (6)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 東北北部も梅雨入り | トップ | TriangleSimple別の方法その2... »
最新の画像もっと見る

6 コメント

コメント日が  古い順  |   新しい順
cametan_42さん、コメント有難うございます (isam)
2022-06-26 00:06:02
 暫く前に読んではいました。で、時間があればでいいので、教えてほしいのですがREPLで確認して、コードを仕上げる方法が見当がつきません。
 結構複雑なコードを単純なREPLから作り上げる方法が、自分にはマジックに思えてしまうんです。
返信する
OCaml Debug (cametan_42)
2022-06-18 14:32:27
OCamlにもデバッガはありますよ。

ただ、殆どの関数型言語ではインタプリタを備えてるんで、コンパイラだけの言語よか神経は使いませんね。
返信する
なるほど、ですね。 (isam)
2022-06-18 13:44:03
 CとかBasicは古い言語ですから、欠点があるのもうなずけます。
 ちょっと疑問ですが、ocamlはデバッグに使えるようなツールがありそうですが(ocamlbrower &),
バグのないプログラムは無いように思いますが、CとかVBなら無駄なステップを入れて、監視できますが、関数型言語でも出来るんですか?F#については統合環境があります。
 何しろ自分はデバッグが命ですので、統合環境を使わないと何も出来ないと思います。(笑)
返信する
それが高階関数が欲しい時 (cametan_42)
2022-06-17 13:47:54
> 関数が引数として、関数を受け取れればと、思った。

それが「高階関数」を使いたい時、なんですよ。
結局、関数型言語ってプログラミングをする際に「こうだったらいいのに・・・」と思った「こうだったら」が詰め込まれてる、って事です。
要するに、プログラミング言語を設計する以上「不便になるように」設計するヤツはいないんですよ(笑)。と言う事は、VBとかCの「不便さ」を解消するように作られている。
だから関数型言語を使うのは難しくないし、むしろ逆に「簡単になる」ように作られてる、って事ですね。
返信する
cametan_42さん、コメント有難うございます (isam)
2022-06-17 08:45:24
 なるほど。かなり納得しましたが、つぎはぎの言語でも、理解が充分でないかもしれません。まだまだ。
 前回、実行時間を測るトコがありました。結局Subを2個作ったんですが、関数が引数として、関数を受け取れればと、思った。ですね。VBではうまい方法がないようです。DLLとかの方法はありそうですが、面倒そうです。
返信する
うん、まぁ。 (cametan_42)
2022-06-17 00:33:09
> 関数型プログラミングでは、駄目なんでしょうね。

うん、まぁそうかなぁ。
っつーか「如何に手抜きするか」が関数型プログラミングなんで(笑)。
逆に言うとisamさんはマジメなのかもしんない(笑)。

例えばね、関数型プログラミング観点ですと。

[1, 2, 3, 4]

ってリストがあるとするでしょ?
で考えるのはこのリストを反転させてくっつけちゃう事なんですよ。

[1, 2, 3, 4] + [4, 3, 2, 1]

だから1個1個の値に付いては考えないんです。「リストをまとめて」どうすっか、ってのを考えるんですよね。

恐らく、VBだと、配列とか最初に大きさ宣言して使うでしょ?
VBは良く知らないですが、BASICはそうですしね。
つまり、伸縮自在な「リスト」みたいなブツを使う言語で初めて「ひっくり返して繋げてしまえ」って思うわけです。
それがプログラミング言語に「便利な」言語と「不便な」言語がある、って言う理由です。
とにかく「使ってるプログラミング言語が」思考に影響を与えるんですよ。
Cなんかでも基本固定長配列なんで、「配列ひっくり返して繋げてしまえ」とかなかなか思えない、とかそういう弊害があるわけです。

> これが大きなプログラムの一部だとして、バグの入る可能性は有るんでしょうか?

それはありますね。
返信する

コメントを投稿

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

C#、VBなど」カテゴリの最新記事