パスカルの三角形の出し方については、配列を使っての方法では、答えを出したつもりです。でも、なんか自分の方法は、違うんではと思う書き込みがありました。いつものcametan_42さんの書き込みです。数学的表現に全くついていけないので、馬の耳に念仏、状態の自分です。(笑)
パスカルの三角形にならって、簡単なものをと思って、やってみたのですが、ハマってしまいました。偶数行で同じ数値が2個並ぶとこで、おかしくなって、試行錯誤しました。その結果がコメントで残してます。
あとから気づいたのですが、もっと簡単な方法が有ると思いました。一行での出力で、奇数なら無いが、偶数なら上の図のように、最後の行で5,5となっているように、なる。妙にw += 2を入れたのが、間違いだった。まだやってみてませんが。
そろそれF#に戻らないと、思い出せなくなるので、Tourに戻ろうと思います。
ここ
https://blog.goo.ne.jp/cametan_42/e/08566d8700eec5d3f753e10485e0950a
で書いてるのは、パスカルの三角形そのものじゃなくって、実際どんな「組み合わせ」があるのか実際に計算しよう、と言う話ですね。
だからisamさんのコードが間違ってる、とかそういう話じゃないです。
ご心配なきよう。
なお、今回のお題のコードはOCamlだと
let triangleSimple n =
List.tl (List.fold_left
(fun x y ->
let lst = List.rev y in
x @ [y @ (List.tl lst)] @ [y @ lst])
[[]]
(List.tl (List.fold_left
(fun x y ->
x @ [(List.hd (List.rev x)) @ [y]])
[[]]
(List.init n (fun x -> x + 1))))
みたいになりますね。
恐らくF#でも似たようなコードになるでしょう。
一つ質問させてください。自分の環境で、Ocamlでも実行してみることはできますが、デバッガとかIDEを全く使用してないんですか?どうもF#以外でそれらしきを見てないんですが。F#だとdotnet fsiで入れるモードだけで書いてるんですか?
例によってSpacemacs(GNU Emacs)です。
Spacemacsで提供してくれてるツール群があるんで、補完機能とかは色々ありますね。
一方、デバッガは使っていません。
> F#だとdotnet fsiで入れるモードだけで書いてるんですか?
インタプリタはフツーに使ってますよ。