nshinchan
ファン登録
J
B
あんまり天気悪い日が続いたので久しぶりに触って夢中になってました^^; いつの間にか普通の再帰もループに変換されるようになってて驚きました。 ファイルの解析とか出来ないので実用的なの作れないけど、Haskellが一番触ってて楽しい。 中学生のお子さんとか居られたら、入門書と一緒に教えたら数学が好きになるかも知れませんよ?(^_-)-☆ 数学とすごく相性のいい言語です。 関数型言語は数学から発展した言語ですので、紙と鉛筆があれば動かせます。
入門書を読めばとりあえず分かります^^; 階乗は n!=n x (n-1) x (n-2) x... x 1 なので、 0! = 1 n! = n x (n - 1)! と言うのが成り立ちまして、Haskellはそれの「!」に名前付けて、言語の規則に合わせ前に持ってきただけで、ほとんどそのままの姿を残したまま動きます。
2016年04月30日06時10分
上の式に具体的な数字を入れて試すと分かりやすいです。 3! = 3 x 2! = 3 x 2 x 1! = 3 x 2 x 1 x 0! = 3 x 2 x 1 x 1 = 6
2016年04月30日12時21分
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
2016年04月30日17時57分
んーと。。。 まず3の階乗である3!は 3! = 3 x 2 x 1 = 6 なんです。 んで、上の式は 3!は3 x 2!と同じ。(3! = 3 x (3 - 1)! = 3 x 2!) つまり、3の階乗は3に2の階乗を掛けたものと同じと言ってて、じゃあ、2の階乗は? 2! = 2 x 1! (2! = 2 x (2 - 1)! = 2 x 1!) と、2に1の階乗を掛けたものと同じなんです。 こうして、どんどん小さい問題に分解していくと、最終的にゼロの階乗は1(0! = 1)である。と言うこれ以上分解できない問題に到達するので、そこで全部の問題が計算可能な状態になるって言う話で、Haskellはそれをほぼそのまま書けるって話。。。です^^;
2016年04月30日19時33分
人間って楽しい事しか早く覚えないらしくて、だったら勉強も楽しいって思えば覚えるのが速いと思うんです。 実際、動物好きから理科が好きになった私は、理科だけは成績良かったですし。。。 階乗を始めとする再帰ってウニョーンと伸びて、シュルル。。。と縮んでいくイメージ(´・ω・`)
2016年05月01日01時49分
nshinchan
あ、(n!-1)じゃなくて(n-1)!だった。。。orz
2016年04月29日23時29分