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

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

Cametan_42さんのブログに問題が出ました。パスカルの三角形。

2022-06-12 10:34:27 | C#、VBなど

cametan_42さんのブログはSchemeの回答だと思いますが、手続き的な思考(それにどうしてもなってしまいます)で、二重ループで解けるようです。

追記)

再帰でもできそうですので、やってみました。結果は配列に入れてますが、やっぱり配列に保存ですかね。

 


コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« VBイジってみました。Tourそ... | トップ | F#イジってみました。Cametan... »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Let's try! (cametan_42)
2022-06-12 12:01:16
是非ともF#で書いてみましょう(笑)。
いい練習になりますよ。
返信する
なんとなくできたのですが…。 (isam)
2022-06-12 15:08:21
試行錯誤の結果は出ましたが、分からないことだらけです。
返信する
最初はそんなモンですよ。 (cametan_42)
2022-06-12 18:40:26
> 試行錯誤の結果は出ましたが、分からないことだらけです。

最初は誰でもそんなもんですよ。
ただ、手続き型言語と関数型言語での「考え方」の大きな違いは、

・手続き型言語 -> 配列系のデータをとにかく要素別にバラバラにして扱おうとする
・関数型言語 -> 配列系のデータを「まとめて」一気に弄ろうとする

って辺りが違うと思いますね。
isamさんが書いたような、i成分、j成分、って分けて考えるのはC言語なんかでもそうですが、発想は手続き型言語のモノです。
今はそれで良いです。徐々に、取り敢えずまずは文法的なモノに慣れていけばいい。
一方、関数型言語だと、例えば「リストの組」であるとか、一気にまとまったデータを「どう処理するか」と言う視点で見る辺りが違います。
例えばパスカルの三角形だと、i成分、j成分、って考えるより「一段」をまとめてどう処理するのか、って言う考え方を好みますね(だからリストを一気に処理する高階関数、なんつー発想が出てくる)。

考えてみると、僕もそうなんだけど、最初にC言語に触った時、「配列」って出てきた時凄く嫌だったんですよ(笑)。「データを纏められる」っつっても付随する部分がメンド臭いし、凄く「難しい」事をやらなアカン感じに追われて、凄く億劫だった。
一方、関数型言語だと「いきなりリスト」を纏めて扱う、とかそういう感じだったんで、ぶったまげたもんです。むしろ、単一の変数使って繰り返し、とか関数型言語だとあんま出てこないですからね(カウンターとか明示的なモノがそんな頻繁に出てこない)。
この2つの形式の大きな違いはこの辺でしょう。「データを分解して扱う」のを吉とするか、「まとまってるデータをそのまま処理するか」、と。
言い換えると、関数型言語で関数型言語の「考え方」に慣れると、「データを分解して見る」のが苦痛になってきますよ。「纏めてフィルタリング出来ないか」って考えるクセを付ける、ってのが関数型言語攻略法の第一歩だと思います。
返信する
cametan_42さん、コメント有難うございます (isam)
2022-06-12 20:15:20
 どうしても、一個のデータを対象に考えて、どうなっているか?考えます。cametan_42さんのブログをもう一度読んでみます。パスカルの三角形でどうデータを纏めて考えてるのか?
返信する

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